Javascript jquery根据自定义函数返回true或false
我想在自定义函数中绑定以下代码,若字段有值,则返回true;若字段为空,则返回false。仅使用一个变量进行验证很容易。但在验证两个数组时,我认为只有自定义函数才有可能。我认为由于缺少自定义函数,代码也变得不必要的冗长。请引导我Javascript jquery根据自定义函数返回true或false,javascript,jquery,Javascript,Jquery,我想在自定义函数中绑定以下代码,若字段有值,则返回true;若字段为空,则返回false。仅使用一个变量进行验证很容易。但在验证两个数组时,我认为只有自定义函数才有可能。我认为由于缺少自定义函数,代码也变得不必要的冗长。请引导我 $(document).on('click', '.subadd', function(){ //I want to bind this code in function var sid = []; $('input[name="si
$(document).on('click', '.subadd', function(){
//I want to bind this code in function
var sid = [];
$('input[name="sid[]"]').each(function(){
if(!$(this).val()){
$(this).addClass('border1red');
return false;
};
if($(this).val()){
$(this).removeClass('border1red');
sid.push(this.value);
}
});
var title = [];
$('input[name="title[]"]').each(function(){
if(!$(this).val()){
$(this).addClass('border1red');
return false;
};
if($(this).val()){
$(this).removeClass('border1red');
title.push(this.value);
}
});
//function
//if function return true
if(sid.length && title.length){
$('table#menutable tr:last').after("<tr>.....</tr>");
};
});
首先,您可以缩短每个循环 您还可以使用选择器和数组作为参数,为此创建一个函数
$.validate = function(selector, array) {
$(selector).each(function(){
if(!$(this).val()){
$(this).addClass('border1red');
return false;
} else {
$(this).removeClass('border1red');
array.push(this.value);
}
}
}
最后,代码的主要部分如下所示:
var sid = [];
var title = [];
$.validate('input[name="sid[]"]', sid);
$.validate('input[name="title[]"]', title);
if(sid.length && title.length){
$('table#menutable tr:last').after("<tr>.....</tr>");
};
您还应该共享html以制作一个工作片段:注意:在每个内部返回false只会停止jQuery集合中对象的迭代,实际上您并没有将值返回给某个外部变量/进程。不太清楚这里需要什么。提供一个@SystemGlitch,谢谢,效果很好,但有一个问题是在哪里应用和运算符,即使一个输入为空,字段也会被添加。@AnandHmt如果需要,您可以使用两个不同的数组。我相应地更新了答案。
var sid = [];
var title = [];
$.validate('input[name="sid[]"]', sid);
$.validate('input[name="title[]"]', title);
if(sid.length && title.length){
$('table#menutable tr:last').after("<tr>.....</tr>");
};