我应该对哪个事件进行更改?

发布于 2024-11-28 11:02:39 字数 501 浏览 1 评论 0原文

在 html 表单中,我有一个带有标签的复选框。当您单击复选框或其标签时,它会切换复选框的选中状态。它被包裹在

中。

如果选中该复选框,我将使用 jquery 隐藏表单的另一个元素。最初我使用的是包装 div 的 .click() 函数。但我注意到,您可以单击复选框和标签(仍在 div 内)之间的,并隐藏另一个,即使未选中该复选框也是如此。 (另外,由于某种原因,单击标签会导致元素隐藏然后重新出现,但我认为我不需要打开那堆蠕虫)。

我在想,我应该分别查看复选框和 div,而不是 div 的 click()。然后我想我可能会为复选框本身寻找类似 onChange 事件的内容,单击标签应该会影响该事件。然后我想人们以前可能已经解决了这个问题,我不应该尝试重新发明轮子。

当两个不同的元素可以更改复选框状态时,保持复选框值和元素的隐藏/显示状态同步的简单方法是什么?

In an html form I have a checkbox that has a label. When you click the checkbox or its label, it toggles the checkedness of the checkbox. It's wrapped in a <div>.

I am using jquery to hide another element of the form if the checkbox is checked. Originally I was using the .click() function of the wrapping div. But I noticed that you could click between the checkbox and the label ( which is still within the div), and get the other to hide, even though the checkbox was not checked. (Also, for some reason, clicking on the label caused the element to hide then reappear, but I don't think I need to open that can of worms).

I was thinking that instead of the click() of the div, I should look at both the checkbox and the div separately. Then I thought I just might look for something like an onChange event for the checkbox itself, which clicking the label should affect. Then I thought that people have probably solved this problem before and I should not try to re-invent the wheel.

What's a simple way to keep the checkbox value and the hide/show state of my element in sync, when two different elements can change the checkbox status?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

晨敛清荷 2024-12-05 11:02:39

onclick 事件附加到复选框(onchange 事件也可以)。无论您单击复选框本身还是其标签,事件处理程序都会触发。只需确保标签的 for 属性包含复选框的 id 即可。

http://jsfiddle.net/FishBasketGordo/GJbce/

Attach a onclick event to the checkbox (a onchange event works too). Whether you click on the checkbox itself, or its label, the event handler will fire. Just make sure that the label's for attribute contains the id of the checkbox.

http://jsfiddle.net/FishBasketGordo/GJbce/

屋顶上的小猫咪 2024-12-05 11:02:39

在这种情况下,复选框的 onChange 事件可能会很好地满足您的需求。

An onChange event for the checkbox will probably serve your needs well in this instance.

在风中等你 2024-12-05 11:02:39

尝试在复选框输入上使用 .change() 函数。

Try using the .change() function on the checkbox input.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文