每4位输入后调用Ajax

时间:2017-09-26 10:39:08

标签: jquery ajax

用户输入类似于' 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);
      }
    });
  }
});

3 个答案:

答案 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位数字组之间留出空格,您还需要处理这些空格。