JSFIDDLE
Html代码:
<body>
<input value="123">
<button>button</button>
</body>
Js Code(使用JQuery 1.2.0):
$(function(){
$("button").click(function(){
$("input").val("balabala...");
});
$("body").on("change","input",function(){
alert("change");
alert($("input").val());
});
});
问题:
一开始,输入的值是&#34; 123&#34;。
当我通过手动编辑更改文本并单击其他位置而不是输入字段时,将触发输入的更改事件。
但是,当我单击按钮时,也会更改输入的值,输入的更改事件将不起作用。
谢谢你的帮助。
答案 0 :(得分:4)
使用代码以编程方式更改值时不会触发change
事件,您必须自己触发
$(function(){
$("button").click(function(){
$("input").val("balabala...").trigger('change');
});
$("body").on("change","input",function(){
alert("change");
alert($("input").val());
});
});
答案 1 :(得分:1)
您需要将.change()
附加到click
函数:
$(function(){
$("button").click(function(){
$("input").val("balabala...").change();
});
$("body").on("change","input",function(){
alert("change");
alert($("input").val());
});
});