我们有一个文本框,用户应该在其中输入一些数据。但是,该数据不得超过 500 个字符。为了实现这一点,我们实现了在 KeyUp 事件上调用的以下函数:
function keyupMaxLimit(obj, maxlen) {
if (parseInt(obj.value.length) > maxlen) {
$(obj).val($(obj).val().substr(0,maxlen));
}
}
这是有效的:用户无法输入更多应该输入的内容。我们还有一个与同一个文本框的 Change 事件相关联的函数,以检测变化并发挥我们的作用。
$(document).on("change", "#myTextBox", function () {
//magic here
});
这也是有效的:当用户更改文本时,函数被调用。
但是,这是我们的问题,这两个功能不能一起工作。例如,如果用户引入了更多他/她应该输入的字符,第一个函数将修剪文本,但第二个函数不会被调用!
看来我们对第一个函数的文本框所做的更改正在阻止/清除 Change 事件。这个对吗?任何解决方法?我无法在第一个函数上显式触发 Change 事件,因为我们会创建不必要的更改。
编辑 - 您可以在此处看到这种情况:http: //jsfiddle.net/jpaires/dpujx/ 打开浏览器的控制台并在文本框中输入“12345”。该事件将被触发(控制台上的“a-ok”)。但是,如果您写“123456”,则文本将被剪切并且不会触发事件(控制台上没有“a-ok”)。谢谢朱哈娜 :)