我尝试在更改textarea中的值时触发事件。我绑定change input paste keyup
,当我手动输入内容或粘贴时,它的工作正常。但我不知道如何使用jquery进行更改时触发。 $("#inptxt").val("Jquery");
HTML
<textarea id="inptxt" ></textarea>
<div id="res" ></div>
<input type="button" value="click" id="but" />
的jQuery
$("#inptxt").on("change input paste keyup", function() {
$("#res").html(jQuery(this).val());
});
$("#but").bind("click",function(){
$("#inptxt").val("Jquery");
});
示例Fiddle
答案 0 :(得分:5)
为每个脚本设置一个值不会触发更改事件。 如果您需要该事件,您必须手动触发它。
$("#but").bind("click",function(){
$("#inptxt").val("Jquery").trigger('change');
});
答案 1 :(得分:4)
浏览器无法识别输入字段#inptxt
中的文本更新,因为它是使用jquery以编程方式完成的。所以你必须在更新文本值后手动触发更改事件。
Jquery代码:
$("#inptxt").on("change input paste keyup", function() {
$("#res").html(jQuery(this).val());
});
$("#but").bind("click",function(){
$("#inptxt").val("Jquery").change();
});
现场演示:
http://jsfiddle.net/dreamweiver/ZVcG4/6/
参考SO问题:Why does the jquery change event not trigger when I set the value of a select using val()?
快乐编码:)
答案 2 :(得分:0)
我发现textarea
是它自己的输入类型,因此您需要在第一行中简单地包含它,然后在输入时将有实时更新...
$("#inptxt").on("change input paste keyup textarea", function() {
$("#res").html(jQuery(this).val());
});
$("#but").bind("click",function(){
$("#inptxt").val("Jquery not trigger the change function");
});