Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery ajax-如何检查重复名称_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript jquery ajax-如何检查重复名称

Javascript jquery ajax-如何检查重复名称,javascript,jquery,ajax,Javascript,Jquery,Ajax,当我使用文本框上的模糊函数来检查重复名称时,使用jquery ajax工作正常 以下是代码: function duplicate(data){ //alert(data); //successfully gives the value from the text input $.post("test.php", {name: data}, function (data){ if(data){ alert('duplicate name')

当我使用文本框上的模糊函数来检查重复名称时,使用jquery ajax工作正常

以下是代码:

function duplicate(data){
    //alert(data); //successfully gives the value from the text input
    $.post("test.php", {name: data}, function (data){
        if(data){
            alert('duplicate name');
        }
    });
}

$(function() {
    $("#name").blur(function(){
        var data = $("#name").val();
        duplicate(data);
    });
});
问题是它会显示警报消息,在某些情况下,我们提交时会使用重复的名称,因此没有必要检查重复


让我知道使用onsubmit函数(jquery ajax或javascript)检查重复名称的解决方案。

您的问题令人困惑,因为您在请求之外以及在请求回调中使用了相同的变量名,
data

我不确定您是否要求根据已经提交并返回页面的数据、服务器上存在的数据检查重复,或者该数据是否只是“是”

根据您提供的代码,如果服务器在
POST
完成后返回
yes
,则数据似乎被认为是重复的

无论哪种方式,这都可能有帮助:

$(function() {
  $('#name').blur(function() {
    duplicate($('#name').val());
  });
});

function duplicate(sData) {

  var sDuplicateValue = ...; // assign this whatever constitutes a duplicate value
  if(isDataDuplicate(sData, sDuplicateValue)) {
     // you have duplicate data
  }

  $.post('test.php', { name: sData }, function(sResposeData) {

    /* because of question ambiguity, i don't know if you want to compare
     * sData and sResponseData, or sResponseData and "yes." if it's the latter,
     * just do isDataDuplicate(sResponseData, "yes"); otherwise, do this:
     */

    if(isDataDuplicate(sData, sResponseData) {
      // it's the same..
    }
  });

}

function isDataDuplicate(sData, sDuplicateValue) {
  if(sDuplicateValue === null) {
    return sData === 'yes';
  } else {
    return sData === sDuplicateValue;
  }
}

我会这样做:

$(function() {
    $("#name").blur(function(){
        var value = $("#name").val();
        $.post(
            "checkDuplicates.php",
            { name: value}, 
            function (data){
                if( data.response === 'yes'){
                    $("#name").css({
                        'border': '1px red solid'
                    }).parent().append('This name already exists');
                } else {
                    return false;
                }
            },
            'json'
        );
    });
});

test.php返回的究竟是什么?这里是test.php:$name=$\u POST['name'];如果($name='test'){echo“重复的名称”}否则{echo“不是重复的”}如果它不是重复的,那么我使用php代码将名称保存到记录中。