JS:在输入输入时使用ajax检查db中的现有数据

时间:2016-04-26 22:34:32

标签: javascript jquery ajax

所以我想检测用户在输入中输入的值是否存在于数据库中,如果存在,则显示错误消息。我已经非常接近,除非输入为空,提交空值而不是要输入的GOING。

 $("#email").on("blur", function(){
        var val = $(this).val(), id = $("#id").val();
        $.ajax({
            method: 'GET',
            url: '/msg',
            data: {
                action: "check_title",
                email: val,
                id: id
            },
            success: function(data) {
                $(".error-msg").text(data);
            }
        })
    });

我也尝试了一个keyup函数,它仍然在做同样的事情,评估空字段。我怎么能拥有它以便不断评估输入内容?

5 个答案:

答案 0 :(得分:1)

此代码段创建一个id为“in”的输入,并检查in值是否有值。我想这更具体地回答了你的问题。并且感谢“Jeff Puckett II”指出这一点。

$('#in').on('input focusout', function(){
  var val = $('#in').val();
  if (val != ""){
    console.log('someones typing');
  } else {
    console.log('empty');
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
  <input id="in" type="text">
  </body>

尝试.on('input')而不是.on('blur')

$("#email").on("input", function(){//do something});

答案 1 :(得分:1)

与Jeff Puckett的答案一样,我会执行空测试,如果为空则返回一条教学信息:

$("#email").on("blur", function(){
    var val = $(this).val(), id = $("#id").val();
    if (val.length < 1 || val==""){
        alert('Please complete all fields');
        $('#email').css('background','yellow').focus();
        return false;
    }
    $.ajax({
        method: 'GET',
        url: '/msg',
        data: {
            action: "check_title",
            email: val,
            id: id
        },
        success: function(data) {
            $(".error-msg").text(data);
        }
    });
});

答案 2 :(得分:1)

    //in your function just add 
    if(!val) {
      $(".error-msg").text("Empty!");
    }
    //or
   if(val) {
      //your ajax code
    }

答案 3 :(得分:0)

首先检查输入是否为空

 $("#email").on("blur", function(){
        var val = $(this).val(), id = $("#id").val();
        // check if val is empty
        if (val != "")
        $.ajax({
            method: 'GET',
            url: '/msg',
            data: {
                action: "check_title",
                email: val,
                id: id
            },
            success: function(data) {
                $(".error-msg").text(data);
            }
        })
    });

答案 4 :(得分:-1)

使用它:

$('input').keyup(function(){ 
   console.log($(this).val());
});
每次用户键入焦点输入时,

keyup或keydown都可以获取数据。