嗯,我在处理输入
字段的更改事件时遇到问题。因为我正在通过另一个脚本更改输入字段的文本。因此我无法 catch 该事件。
看,这里有 2 个按钮 -
和 +
,当我单击 -/+ 时,某个值将插入文本框内。这是一个数值,我通过包含和减少 1 手动添加了增量和减量。无论如何,由于文本框中的文本正在更改,我无法在 jQuery 中捕获该事件
我的代码如下
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<button>-</button><input type="text" id="abc" /><button>+</button>
我的 jQuery 函数都没有捕获该事件。
$("#abc").change(function(){
alert();
});
$("#abc").click(function(){
alert();
});
因为我已经通过另一个 jQuery
帮助器添加了文本。那么我怎样才能捕获文本更改事件呢?我不想写下增量和减量函数内的代码。我想保持该代码完整。那么有什么办法可以轻松解决这个问题吗?提前致谢。
更新: 这是增量和减量的更新代码
var btn = $(this),
oldValue = $('#abc').val().trim(),
newVal = 0;
if (btn.attr('data-dir') == 'up') {
newVal = parseInt(oldValue) + 1;
} else {
newVal = parseInt(oldValue) - 1;
}
$('#abc').val(newVal);
最佳答案
您需要.trigger(event)
事件,当用户与元素交互时触发事件。
$("#abc").change(function() {
console.log('changed', this.value);
});
$("button").click(function() {
var btn = $(this),
oldValue = $('#abc').val().trim(),
newVal = 0;
if (oldValue != '') {
if (btn.attr('data-dir') == 'up') {
newVal = parseInt(oldValue, 10) + 1;
} else {
newVal = parseInt(oldValue, 10) - 1;
}
}
$('#abc').val(newVal).trigger('change');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<button data-dir="down">-</button><input type="text" id="abc" /><button data-dir="up">+</button>
关于javascript - 当我通过另一个 jQuery 手动更改输入值时,如何捕获 jQuery 更改事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43625878/