Javascript OnChange for Checkbox

时间:2014-01-03 11:25:13

标签: javascript jquery html forms onchange

我的表单中有5个复选框和1个textarea,并希望只为所有这些挂钩OnChange()。但是,无论出于什么原因,我在Stack Overflow上找到的任何内容似乎都没有被调用。

由于这是我发现的最基本的例子,这有什么问题?

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"/>
<script type="text/javascript">
$(document).ready(function()
{
    $("input").on("input", function()
    {
        alert("CHANGED");
    });
}
</script>

5 个答案:

答案 0 :(得分:3)

你应该处理变更事件:

$('input:checkbox,textarea').change(function () {
   alert('changed');
});

答案 1 :(得分:1)

oninput事件仅在输入的文字更改时触发,因此不会针对复选框触发该事件。尝试绑定到change事件的复选框和textareas上的input事件:

$("textarea").on("input", yourFunction);
$("input:checkbox").on("change", yourFunction);

function yourFunction() {
    alert("CHANGED");
}

jsFiddle演示了上述内容。

注意:此答案的不同之处在于alert会立即触发textarea,而不仅仅是元素的模糊。

附加说明:&lt;&lt; 中不支持oninput事件IE9

答案 2 :(得分:1)

为什么要将input事件绑定到复选框,它只对textarea开火?

您需要绑定change事件:

试试这个:

<强>更新

$(document).ready(function()
{
    $("textarea").on("input", function(){
      alert("CHANGED");
    });

    $("input").on("change", function(){
        alert("CHANGED");
    });
});

Try in fiddle

答案 3 :(得分:0)

复选框通常与同名属性一起使用,因此在选择器名称属性中将是有用的

$("input[name='interests']").change(function(){
   /*some code*/
});

答案 4 :(得分:-1)

它不适用于textarea。您可以将所有单选按钮和textarea分配为同一个类,然后

$(".your_class_name").on("change", function()
{
    alert("CHANGED");
});