在文本框中触发文本更改

时间:2014-06-23 11:39:06

标签: javascript jquery events textbox

我无法触发当前场景中文本的更改。

如果我点击按钮,我将更改文本内容。那么如何触发由外部事件引起的文本更改。 例如,只需单击一个按钮,我就可以填充文本框中的任何文本,能够粘贴文本并使用鼠标和键盘。在这些所有场景和场景中,我也希望触发事件。

我已经尝试了以下内容。

$('#text_id').on('change', function () {
    alert('This is not trigged when i changed the text');
});

更改文本时应发出警报。可能有许多可能的来源来更改文本。

这是我创建的Fiddle

提前致谢。

这是我更新的fiddle

4 个答案:

答案 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