我有一个输入文本,需要在文本(值)更改时进行检测。该值可以通过两种方式更改:
- 允许用户在其中写入。
- 用户单击一个按钮,运行一个 jQuery 事件并用结果填充它。
对于我解决的第 1 项,keyup
但对于第 2 项,我不知道如何检测文本何时更改。我尝试change()
但不起作用。
我有一个输入文本,需要在文本(值)更改时进行检测。该值可以通过两种方式更改:
对于我解决的第 1 项,keyup
但对于第 2 项,我不知道如何检测文本何时更改。我尝试change()
但不起作用。
您可以.trigger()
在填充输入的函数内部使用。
$("#idOfButton").click(function() {
//do some stuff
//fill input
$("#edit").val("new stuff!").triggerHandler("keyup"); //<--Trigger keyup event
});
演示:http: //jsfiddle.net/Q8fCa/1
您可以创建一个间隔来检查输入字段的值是否在每种情况下(用户输入或按钮单击)都发生了变化:
var oldValue = $('#field').val();
var newValue = oldValue;
var checkInputFieldInterval = window.setInterval(function() {
newValue = $('#field').val();
if (newValue !== oldValue) {
// VALUE CHANGED, DO STUFF
oldValue = newValue;
}
}, 100);
注意“100”是以毫秒为单位的间隔周期。您可以在此页面http://www.w3schools.com/jsref/met_win_setinterval.asp上找到有关 setInterval() 方法的更多信息
你可以做...
$('.name').on('keyup', function(){
/* I'll run when the button is clicked or there's a keyup event. */
})
$('button').on('click', function(){
$('.name').val('Bill').trigger('keyup');
})
这是一个快速演示:http: //jsbin.com/uteceb/1/edit
为 item2添加事件处理程序,change()
并在 item1 keyup 处理程序中,触发 item2change()
事件。就这么简单...
“运行一个 jQuery 事件并用结果填充它。”
您可以从您的 jquery 事件中调用另一个函数。
$('sel').click(function(){
textedited(); // call your new function.
});