首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jquery检测不基于用户输入的文本框值更改

jquery检测不基于用户输入的文本框值更改
EN

Stack Overflow用户
提问于 2013-04-17 06:13:38
回答 4查看 29.2K关注 0票数 26

假设您的页面上有一个简单的文本框和按钮。单击该按钮将更新文本框值:

HTML:

代码语言:javascript
复制
<input type="text" id="myText" val="" />
<input type="button" id="myBtn" value="Change TextBox Value" />

jQuery:

代码语言:javascript
复制
$("#myBtn").on('click', function() {
   $("#myText").val('adsf');
})

我想为textbox的change事件添加一个事件侦听器,如下所示:

代码语言:javascript
复制
$('#myText').on('change', function(){
    alert('Changed!')
});

单击该按钮时不会触发该警报,但当您手动更改文本框值并将焦点移出该按钮时,会触发该警报。

我知道您可以将$("#myText").trigger('change')添加到按钮的onclick事件中,但我只希望通过将事件侦听器添加到textbox来完成此操作。

jsfiddle

谢谢

EN

回答 4

Stack Overflow用户

发布于 2013-04-17 06:53:57

为什么不在单击按钮时强制执行手动事件,如下所示-

代码语言:javascript
复制
$('#myText').on('change',function(e){
    alert('Changed!');
});

$("#myBtn").on('click', function() {
    $("#myText").val('adsf');
    $("#myText").change();
})
票数 3
EN

Stack Overflow用户

发布于 2013-04-17 06:16:49

您需要连接这两个处理程序。要重用处理程序,可以将其提取到一个命名函数中:

代码语言:javascript
复制
function showChanged(){
    alert('Changed!')
}

$("#myBtn").on('click', showChanged);
$("#myText").on('change', showChanged);
票数 0
EN

Stack Overflow用户

发布于 2015-03-10 19:47:33

您只需要使用keyup函数:

代码语言:javascript
复制
$( "#myText").keyup(function(){
   alert($(this).val());
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16048084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档