【问题标题】:how to know which checkbox was clicked on?如何知道点击了哪个复选框?
【发布时间】:2012-04-25 17:25:36
【问题描述】:

我有一个复选框列表。我需要知道哪个被点击了。 我不能用

循环
if(form1.news[i].checked)

因为可能有其他人已经检查过了。 我试过使用

this.form.id
this.from.checkboxname.id

但是没有用。

【问题讨论】:

  • 您想知道什么时候?当它被点击或提交时?
  • 当它被点击时。我有一个函数:onclick=\"update(this.form,this.form.news.id,'news.php')\"/

标签: javascript html forms checkbox


【解决方案1】:

如果您的 onclick() 函数位于复选框上,this.id 应该可以正常工作。

【讨论】:

  • 谢谢,这对我很有帮助!
【解决方案2】:

事件对象将包含对被点击元素的引用。

对于example(使用 YUI 来抽象浏览器差异以进行事件绑定,其他库做类似的事情,如果您不介意放弃旧的 Internet Explorer,可以使用原始 DOM):

YUI().use('node', 'event', function (Y) {
    Y.one('#container').delegate('click', function (e) {
        alert(e.target.get('value'));
        e.stopPropagation();
    }, 'input[type=checkbox]');
});
​

【讨论】:

    【解决方案3】:

    已更新 DEMO:

     $(function() {
                $('#myButton').click(function() {
                    $('input:checkbox:checked').each(function(i) {
                        alert(this.value);
                    });
                });
            });​
    

    【讨论】:

    • 请把代码放在这里,否则你的答案将毫无用处。
    • 这将给出所有选中的复选框,而不是被点击的那个。
    • @Quentin-它将检查所有复选框并返回选中的复选框。
    • @DotNetter — 没错。那不是“被点击的那个”。如果未选中,它甚至可能不包括被点击的那个。该问题明确指出它不想获取所有现有的检查输入。
    • @Quentin-这是 OP 需要的吗?
    猜你喜欢
    • 2011-10-27
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多