我的表单中有 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演示了上述内容。
注意:这个答案的不同之处在于alert
在textarea
中立即触发,而不仅仅是元素模糊。
附加说明:
为什么你绑定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");
});