我有一个输入文本,需要在文本(值)更改时检测。 该值可以通过两种方式更改:如何检测输入文本中的值何时被脚本更改?
- 允许用户在其中写入。
- 用户点击一个按钮,运行一个jQuery事件并用 结果填充它。
对于我使用keyup
解决的项目1,但对于项目2我不知道如何检测文本何时更改。 我尝试change()
但不起作用。
我有一个输入文本,需要在文本(值)更改时检测。 该值可以通过两种方式更改:如何检测输入文本中的值何时被脚本更改?
对于我使用keyup
解决的项目1,但对于项目2我不知道如何检测文本何时更改。 我尝试change()
但不起作用。
您可以在填写输入的函数中使用.trigger()
。
$("#idOfButton").click(function() {
//do some stuff
//fill input
$("#edit").val("new stuff!").triggerHandler("keyup"); //<--Trigger keyup event
});
为item2和item1键入处理程序添加事件处理程序change()
,触发item2 change()
事件。简单的那样...
“运行jQuery的事件,并用结果填充它。”
你可以从你的jquery事件调用另一个函数。
$('sel').click(function(){
textedited(); // call your new function.
});
您可以创建,检查是否输入字段的值在每一个场合(用户输入或点击按钮)发生了变化的时间间隔:
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”是区间以毫秒为单位。您可以在此页面找到有关setInterval()方法的详细信息http://www.w3schools.com/jsref/met_win_setinterval.asp
你可以做...
$('.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
为什么不直接调用额外的代码后填充输入?你可以使用'$(“#id”)。trigger(“keyup”);' – Archer
他可能使用了一些库/小部件... –
你可以更具体一点,脚本响应什么样的(jQuery)事件, _result_是否已创建并同步填充? –