Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript文本输入更改事件未触发_Javascript_Jquery_Events_Onchange - Fatal编程技术网

javascript文本输入更改事件未触发

javascript文本输入更改事件未触发,javascript,jquery,events,onchange,Javascript,Jquery,Events,Onchange,我有一个文本类型输入字段和一个复选框。 如果我更改文本,然后在输入框外单击(或按enter或tab键),则会引发更改事件。但是,如果我输入一些文本,然后用鼠标直接单击复选框,似乎只会抛出复选框更改事件 我有以下代码: <input type="text" name="text" class="update"> <input type="checkbox" name="check" class="update"> 这是一个已知问题吗?我如何确保在此设置中触发/抛出/捕获所

我有一个文本类型输入字段和一个复选框。 如果我更改文本,然后在输入框外单击(或按enter或tab键),则会引发更改事件。但是,如果我输入一些文本,然后用鼠标直接单击复选框,似乎只会抛出复选框更改事件

我有以下代码:

<input type="text" name="text" class="update">
<input type="checkbox" name="check" class="update">

这是一个已知问题吗?我如何确保在此设置中触发/抛出/捕获所有更改事件?

由于您正在侦听更新类,因此这两个更改事件都会触发

我不确定我是否得到了它。但对我来说,当我尝试键入textfield,然后用鼠标单击checkbox时,两个事件都会被触发。但您必须记住,文本输入的事件“更改”意味着该输入必须失去焦点,只要字段处于焦点状态,就不会触发任何更改事件。这可能就是你的情况。复选框/无线电框的工作方式与之不同。没有必要放松注意力

干杯

附言。 我的测试用例:

除非输入焦点切换到其他控件,否则更改事件不会触发

要触发用户更改,请使用输入事件:

$('input').on('input',function(){...})
要触发代码更改,请使用DOMSubtreeModified事件:

$('input').bind('DOMSubtreeModified',function(){...})
如果要同时触发用户和代码更改,请执行以下操作:

$('input').bind('input DOMSubtreeModified',function(){...})

DOMSubtreeModified事件被标记为已弃用,有时会耗费大量CPU时间,但如果小心使用,它也可能非常有效…

该代码是否在$(document).ready(function())中;功能?您可以尝试在函数中放置一个alert(),以查看是否正在点击该函数。奇怪。必须进行其他操作,因为我的测试可以从更改的文本输入单击复选框。是否确定?我复制了HTML/JS,当我在文本框中键入一些内容,然后单击复选框时,可以看到两个事件都会触发。您同时调用同一个事件,因此其中一个调用会响应,只需更改文本框中的事件并使用jQuery SeparateYok调用它,那么肯定会发生其他事情,您是对的。。我会做更多的测试。实际上,我使用事件触发ajax调用,并且似乎只执行了其中一个ajax调用。。因此,我“认为”这是一个没有开火的事件,但问题可能在别处。。
$('input').bind('input DOMSubtreeModified',function(){...})