jquery检测文本框值的变化不是基于用户输入
jquery detect textbox value change NOT based on user input
假设您的页面上有一个简单的文本框和按钮。点击按钮将更新文本框的值:
HTML:<input type="text" id="myText" val="" />
<input type="button" id="myBtn" value="Change TextBox Value" />
jQuery: $("#myBtn").on('click', function() {
$("#myText").val('adsf');
})
我想为文本框的更改事件添加一个事件侦听器,如下所示:
$('#myText').on('change', function(){
alert('Changed!')
});
当你点击按钮时,这个警告不会被触发,但当你手动改变文本框的值并将焦点移开时,它会被触发。
我知道您可以将$("#myText").trigger('change')
添加到按钮的onclick事件中,但我希望仅通过向文本框添加事件侦听器来完成此操作。
jsfiddle
谢谢
不支持此事件。您唯一可以尝试的是设置间隔或超时来检查值是否被更改(使用data存储临时值):
var $myText = $("#myText");
$myText.data("value", $myText.val());
setInterval(function() {
var data = $myText.data("value"),
val = $myText.val();
if (data !== val) {
$myText.data("value", val);
alert("changed");
}
}, 100);
演示:http://jsfiddle.net/xZcAr/1/
当按钮被点击时,为什么不强制一个手动事件呢-
$('#myText').on('change',function(e){
alert('Changed!');
});
$("#myBtn").on('click', function() {
$("#myText").val('adsf');
$("#myText").change();
})
您需要连接两个处理程序。要重用该处理程序,您可以将其提取为命名函数:
function showChanged(){
alert('Changed!')
}
$("#myBtn").on('click', showChanged);
$("#myText").on('change', showChanged);
您只需使用keyup
函数:
$( "#myText").keyup(function(){
alert($(this).val());
});
您可以这样做。与其监听输入字段,不如监听同时得到更新的div上的变化。
function trigger(){
setTimeout(function(){
document.getElementsByName("Thing")[0].value = 'hello'
document.getElementById('myDiv').innerHTML = document.getElementsByName("Thing")[0].value
}, 3000);
}
trigger()
document.getElementById("myDiv").addEventListener('DOMSubtreeModified', (e)=>{
console.log(e.target.innerHTML)
});
<input type="text" name="Thing" value="" />
<div style="display:none;" id="myDiv"></div>
相关文章:
- Facebook共享链接适用于用户,但不适用于粉丝页面管理员
- 使用Jquery.click显示/隐藏切换,适用于新用户,但不适用于种子
- 在相对于用户当前 URL 路径的不同路径中设置 Cookie
- 如何将JS应用于用户在表格中添加的行
- 适用于年轻用户的 Javascript 提示框的替代方案
- 如果用户的浏览器早于以下版本,则显示一条消息:IE 10、Firefox 39、Chrome 39、Opera 8
- 将特定于用户的 URL 列表与当前 URL 进行比较
- 将数学规则(如rnd,max等)应用于用户使用AngularJS指令输入的值
- 可以从用户那里取回最后 2 个甚至 3 个 URL?类似于 document.referrer
- 在拉力赛中:我是否可以将自定义任务状态映射到拉力赛任务板中的现有任务状态(类似于用户情景的看板)
- 在弹出窗口中丢失 asp.net 会话.仅在IE中,仅适用于某些用户
- 用于相对于用户在约束内单击的位置定位框的数学公式
- 如果用户用户使用引导对话框进行确认,请重定向到相应的链接
- 有什么方法可以隐藏搜索栏,直到用户向上滚动..类似于iPhone上的消息应用程序
- 强大的用户库,类似于示例java / go for node.js(javascript)
- 用户脚本是否适用于本地主机 html 文件
- 错误:找不到相对于目录“/用户/用户名”的预设“es2015”
- 希望用户能够确定Chrome扩展程序的css / js应用于哪些URL
- Meteor:用于配置特定于用户类型的路由的约定
- 解析,函数仅适用于当前用户