Javascript OnChange for Checkbox



我的表单中有 5 个复选框和 1 个文本区域,只想为所有这些挂上 OnChange()。但是,无论出于何种原因,我在堆栈溢出上发现的任何内容似乎都没有被调用。

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

<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>

您应该处理更改事件:

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

仅当输入的文本更改时,才会触发 oninput 事件,因此不会为复选框触发该事件。尝试绑定到复选框的 change 事件和文本区域上的 input 事件:

$("textarea").on("input", yourFunction);
$("input:checkbox").on("change", yourFunction);
function yourFunction() {
    alert("CHANGED");
}

jsFiddle演示了上述内容。

注意:这个答案的不同之处在于alerttextarea中立即触发,而不仅仅是元素模糊。

附加说明

为什么你绑定input事件复选框,它只是为文本区域触发?

您需要绑定change事件:

试试这个:

更新

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

尝试小提琴

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

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

它不适用于文本区域。 您可以将所有单选按钮和文本区域分配给相同的类,然后

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

最新更新