我有一个 HTML 输入字段,可以说
<input type="text" maxlength="50" size="50" name="subject" id="subject">
我需要在输入的每 3 个字符上触发一个函数。
例如:
如果用户输入“aaa” - 触发事件,他继续输入“aaa bbb” - 再次触发事件,等等。
但不应计算空格。
我需要这个将字段的值发布到外部 API - 进行搜索。
以前有人做过吗?
请帮忙。
我有一个 HTML 输入字段,可以说
<input type="text" maxlength="50" size="50" name="subject" id="subject">
我需要在输入的每 3 个字符上触发一个函数。
例如:
如果用户输入“aaa” - 触发事件,他继续输入“aaa bbb” - 再次触发事件,等等。
但不应计算空格。
我需要这个将字段的值发布到外部 API - 进行搜索。
以前有人做过吗?
请帮忙。
尝试这样的事情。将事件处理程序绑定到input
页面加载
$(function(){
$("#subject").change(function(){
var val = $(this).val().trim();
val = val.replace(/\s+/g, '');
if(val.length % 3 == 0) { //for checking 3 characters
//your logic here
}
});
});
如果您想在用户键入时实时执行此操作,并且不要求他们从输入中移除焦点,您可以使用keyup
事件和稍微修改的逻辑来过滤空格键按下。
$('#subject').on('keyup', function(e) {
if (e.which !== 32) {
var value = $(this).val();
var noWhitespaceValue = value.replace(/\s+/g, '');
var noWhitespaceCount = noWhitespaceValue.length;
if (noWhitespaceCount % 3 === 0) {
// Call API
}
}
});
您还需要添加vals.length > 0
该子句才能在以下情况下工作length = 0
:
//for checking 3 characters
if( vals.length > 0 && val.length % 3 == 0 )