Javascript 返回不';功能不正常
在下面的函数中,如果data=0或为空,我希望返回false,否则返回true——对于一个输入字段,它可以工作 但是,如果我有两个带有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) {
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;
});
}
);
我试着读你的问题并理解它,但我不能。试着重写它,使它不是一个句子…天哪,请校对你的问题,它几乎不是英语。可能重复重写它类似英语。。。