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 当输入值以编程方式更改时,如何触发JQuery更改事件?_Javascript_Jquery_Html_Onchange - Fatal编程技术网

Javascript 当输入值以编程方式更改时,如何触发JQuery更改事件?

Javascript 当输入值以编程方式更改时,如何触发JQuery更改事件?,javascript,jquery,html,onchange,Javascript,Jquery,Html,Onchange,当以编程方式更改输入文本时,我想触发JQuerychange事件,例如: function changeTextProgrammatically(value) { $("input").val( value ); $("input").trigger( 'change' ); // Triggers the change event } changeTextProgrammatically( "A" ); $(“输入”).change(函数(){ log(“输入文本已更改!

当以编程方式更改输入文本时,我想触发JQuery
change
事件,例如:

function changeTextProgrammatically(value) {
    $("input").val( value );
    $("input").trigger( 'change' ); // Triggers the change event
}

changeTextProgrammatically( "A" );
$(“输入”).change(函数(){
log(“输入文本已更改!”);
});
$(“输入”).val(“A”)

仅当用户在输入中键入内容然后失去焦点时,才触发change事件

您需要使用手动触发事件

$(“输入”).change(函数(){
log(“输入文本已更改!”);
});
$(“输入”).val(“A”).change()

您需要做的是在设置文本后触发
change
事件。因此,您可以创建一个函数来执行此操作,这样您就不必在每次需要更新文本时重复此操作,如下所示:

function changeTextProgrammatically(value) {
    $("input").val( value );
    $("input").trigger( 'change' ); // Triggers the change event
}

changeTextProgrammatically( "A" );

我已经更新了,

您可以使用DOMSubtreeModified事件:

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

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

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

事件处理程序
.change()
的行为类似于表单提交-基本上当提交时的值更改时,控制台将记录。为了在文本输入上表现良好,您需要使用输入,如下所示:

$(“输入”)。在('input',function()上{
log(“输入文本已更改!”);
});
$(“输入”).val(“A”)

jquery change事件仅在用户键入输入然后失去焦点时起作用。因此,您可以使用以下变通方法来执行此操作:- 假设您有一个按钮,点击它会导致输入值的变化。(这也可以是其他任何东西,而不是按钮)


在以编程方式更改输入的.val()后,是否需要调用.change()?当我以编程方式更改.val()并设置.focus()以便将光标放在增值文本的末尾时,我发现了这一点。然后单击输入的外部。它清除输入…@AkinHwan:
change()
方法正在调用以编程方式触发该方法,因为
val()
方法不会触发更改事件