我无法触发当前场景中文本的更改。
如果我点击按钮,我将更改文本内容。那么如何触发由外部事件引起的文本更改。 例如,只需单击一个按钮,我就可以填充文本框中的任何文本,能够粘贴文本并使用鼠标和键盘。在这些所有场景和场景中,我也希望触发事件。
我已经尝试了以下内容。
$('#text_id').on('change', function () {
alert('This is not trigged when i changed the text');
});
更改文本时应发出警报。可能有许多可能的来源来更改文本。
这是我创建的Fiddle。
提前致谢。
这是我更新的fiddle
答案 0 :(得分:1)
更新了小提琴 - http://jsfiddle.net/upa2A/1/
$(document).ready(function () {
$(document).on('click', "#button_id", function () {
$('#text_id').val('TExt changed')
});
$(document).on('change', "#text_id", function () {
alert('This is not trigged when i changed the text');
});
});
原始小提琴中的问题 -
$(document).ready()
()
function
$.on
的使用不正确(请在http://api.jquery.com/on/上了解详情)根据提出的评论进行修改 -
更新了小提琴 - http://jsfiddle.net/upa2A/4/
$(document).ready(function () {
$(document).on('click', "#button_id", function () {
$('#text_id').val('TExt changed').change();
});
$(document).on('change', "#text_id", function () {
alert('This is not trigged when i changed the text');
});
});
根据评论主题进行更多编辑 -
从http://api.jquery.com/change“但是对于其他元素类型,事件将延迟,直到元素失去焦点。”
因为,当通过按钮点击更改时,文本框未被聚焦,触发器不会自动发生。
答案 1 :(得分:0)
我在jsfiddle中看到了你的代码。你错过了一些括号和分号。否则你的代码写。请检查jquery库代码。
$('#button_id').on('click',function()
{
$('#text_id').val('TExt changed');
}
);
$('#text_id')。on('change',function(){alert('当我更改文本时,这不会被触发'); });
答案 2 :(得分:0)
尝试以下代码。但为此你应该使用jQuery。只要文本发生变化,它就会引发事件。
$('#text_id').on('input propertychange paste', function() {
alert('Text Changed');
});
工作小提琴是here
答案 3 :(得分:0)
这个事件肯定会引起文本变化。如果它对你没用,肯定别人会为此感到高兴。
var txtVal = '';
setInterval(function() {
if ($("#text_id").val() != txtVal) {
txtVal = $("#text_id").val();
alert("Text Changed");
}
}, 10);
工作小提琴是here