Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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 返回不';功能不正常_Javascript_Jquery - Fatal编程技术网

Javascript 返回不';功能不正常

Javascript 返回不';功能不正常,javascript,jquery,Javascript,Jquery,在下面的函数中,如果data=0或为空,我希望返回false,否则返回true——对于一个输入字段,它可以工作 但是,如果我有两个带有class=“myclass_1”的输入,其中一个有值,而另一个输入没有值,那么它将无法按预期工作 使用$('body')单击表单中的按钮。委托('.submit','click',…当I警报(searchResult)输出为true时,即使一个字段为空 var searchResult = false; var search = function(e) {

在下面的函数中,如果data=0或为空,我希望返回false,否则返回true——对于一个输入字段,它可以工作

但是,如果我有两个带有
class=“myclass_1”
的输入,其中一个有值,而另一个输入没有值,那么它将无法按预期工作

使用
$('body')单击表单中的按钮。委托('.submit','click',…
当I
警报(searchResult)
输出为true时,即使一个字段为空

var searchResult = false;
var search = function(e) {
    e.preventDefault();
    $.ajax({
        type: 'POST',
        url: 'myURL',
        data: myData,
        async: false,
        success: function(data) {
            if (data == '0') {
                searchResult = false;
            } else {
                searchResult = true;
            }
        }
    });
};

$('.myclass_1').live('keyup change', search);

$('body').delegate('.submit', 'click', function(e) {
    var passed = true;
alert(searchResult)// this output is true
    if (!(searchResult && passed)) { // <-- NOTICE THIS
        $('#loadingDiv, #overlay').hide();
        return false;
    }
});
var searchResult=false;
变量搜索=函数(e){
e、 预防默认值();
$.ajax({
键入:“POST”,
url:'myURL',
数据:myData,
async:false,
成功:功能(数据){
如果(数据='0'){
searchResult=false;
}否则{
searchResult=true;
}
}
});
};
$('.myclass_1').live('keyup change',search);
$('body')。委托('.submit','click',函数(e){
var通过=真;
警报(searchResult)//此输出为真

如果(!(searchResult&&passed)){/希望我理解您的问题:

您没有确定是否存在空输入,当最后一个ajax调用成功时,searchResult将为true(未返回0)

您可以将ajax调用的成功存储为每个输入的数据属性,这样您就可以检查所有输入的最后一个ajax调用是否成功:

jQuery(
  function($)
  {

    var search = 
          function(e) 
          {
            e.preventDefault();
            var target=$(e.target);
            if(!target.val() 
                || 
                (target.data('oldValue') && target.data('oldValue')==target.val()
              )
          )
          {
            //return here, no need for a request if 
            // the value hasn't change or is empty
            return;
          }
      target.data('oldValue',target.val());
      //reset data-result for the given input
      target.data('result',0);
    $.ajax({
        type: 'POST',
        url: 'url',
        data: myData,
        async: false,
        success: function(data) {
            if (data == '0') {
                target.data('result',0);
            } else {
                target.data('result',1);
            }
        }
    });
};

$('.myclass_1').live('keyup change', search);

$('body')
  .delegate('.submit', 
            'click', 
            function(e) 
            {
              var inputs=$('.myclass_1'),
                  passed=true,
                  searchResult=(
                                inputs
                                  .length
                                  ===
                                 inputs.filter(function()
                                               {
                                                return($(this).data('result')===1);
                                               })
                                  .length
                               );       

    //searchResult will be false if data-result isn't set to 1 in all inputs
    if (!(searchResult && passed)) { 
        $('#loadingDiv, #overlay').hide();
        return false;
    }
    return true;
});

  }
);

我试着读你的问题并理解它,但我不能。试着重写它,使它不是一个句子…天哪,请校对你的问题,它几乎不是英语。可能重复重写它类似英语。。。