用户输入类似于' XXXX XXXX XXXX XXXX',现在我想进行Ajax调用,以便在用户键入4位数时每次从Db获取数据,然后在用户输入更多时调用下一个Ajax 4位数字等等,以获得更精确的结果。
$('#myInput').on('change', function(){
// Don't exactly know what to do here //
var myData = $(this).val();
if(myData > 4){
$.ajax({
type : 'get',
url : 'myUrl.php?data='+myData,
success : function(data){
$('myDataDiv').html(data);
}
});
}
});
答案 0 :(得分:0)
您应该为所有这4个输入使用class,然后使用如下所示的类更改jquery选择器。
$('.myInput').on('change', function(){ // consider `myInput` is class...
var myData = $(this).val();
if(myData.length % 4 == 0){
$.ajax({
type : 'get',
url : 'myUrl.php?data='+myData,
success : function(data){
$('myDataDiv').html(data);
}
});
}
});
因为如果你使用像#myInput
这样的id,那么jquery将只考虑来自DOM顶部的第一个id,你的代码可能无法正常工作。
答案 1 :(得分:0)
var myData = $(this).val();
此行会在文本框内显示您的值。要获取输入中必须使用的字符数.length
。
var myData = $(this).val();
if((myData.length % 4) === 0){
}
答案 2 :(得分:0)
使用if(myData.length && myData.length % 4 == 0)
这将获得字符串的长度,并将模4比较为0。
如果您想在4位数字组之间留出空格,您还需要处理这些空格。