Javascript 在jQuery对象中循环使用每个对象并计算一个条件
我在下面创建了一个非常简单的脚本,在这个脚本中,我提出了一个问题,而这个问题似乎在。如您所见,我希望循环一组jQuery对象,并返回Javascript 在jQuery对象中循环使用每个对象并计算一个条件,javascript,jquery,Javascript,Jquery,我在下面创建了一个非常简单的脚本,在这个脚本中,我提出了一个问题,而这个问题似乎在。如您所见,我希望循环一组jQuery对象,并返回true或false(如果其中一个为false,则返回。每个循环将中断,因此最终结果将为false) 由于某些原因,验证似乎无法正常工作 $('.with validation')。关于('submit',函数(e){ if(isValid()){ console.log(“验证成功”); 返回true; }否则{ console.log(“验证失败”); 返回f
true
或false
(如果其中一个为false,则返回。每个循环将中断,因此最终结果将为false)
由于某些原因,验证似乎无法正常工作
$('.with validation')。关于('submit',函数(e){
if(isValid()){
console.log(“验证成功”);
返回true;
}否则{
console.log(“验证失败”);
返回false;
}
});
函数是有效的(){
变量$required=$('.required');
var$email=$('.email');
var inputsValidation=函数(){
返回$(this).val().length>0;
}
所需美元。每个(输入验证);
返回输入验证;
}
好啊
我对您的脚本做了一些修改,希望这就是您“寻找”的内容
我还更改了“submit”触发器,以允许您在这里运行示例。
您应该能够在('submit',function(){})上使用$('form.with validation').on
$('.with validation button')。在('click',function()上{
if(isValid()==true){
console.log(“验证成功”);
返回true;
}否则{
console.log(“验证失败”);
返回false;
}
});
函数isValid(){
var isvalid=true;
$('.required')。每个(函数(){
如果(有效){
if($(this).hasClass(“电子邮件”)){
如果(!validateEmail($(this.val())){
isvalid=false
}
}否则{
if($(this).val().length==0){
isvalid=false
}
}
}
})
返回有效
}
功能validateEmail(电子邮件地址){
(2)目前(以下以下::::::::[[[[w-[w-[[w-[[[w-[[[w-[[[w-[[[w-]+)*)))除了除了除了上述两个新的RegExp((((((“[[[[[w-\w-\w-\s][[[[[[3-\s-\s[s-\s[s-[s][[[[[s][[[3]]]]]的)的)的)号号号))))))))在目前,((((((((((()))))目前((([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[|[0-9]{1,2}\)((25[0-5]{2[0-4][0-9]{2}{0-9]{1,2}\){2}(25[0-5]{2[0-4][0-9]{1[0-9]{2}{1,2}}})/);
返回模式.test(emailAddress);
};代码>
好啊
我对您的脚本做了一些修改,希望这就是您“寻找”的内容
我还更改了“submit”触发器,以允许您在这里运行示例。
您应该能够在('submit',function(){})上使用$('form.with validation').on
$('.with validation button')。在('click',function()上{
if(isValid()==true){
console.log(“验证成功”);
返回true;
}否则{
console.log(“验证失败”);
返回false;
}
});
函数isValid(){
var isvalid=true;
$('.required')。每个(函数(){
如果(有效){
if($(this).hasClass(“电子邮件”)){
如果(!validateEmail($(this.val())){
isvalid=false
}
}否则{
if($(this).val().length==0){
isvalid=false
}
}
}
})
返回有效
}
功能validateEmail(电子邮件地址){
(2)目前(以下以下::::::::[[[[w-[w-[[w-[[[w-[[[w-[[[w-[[[w-]+)*)))除了除了除了上述两个新的RegExp((((((“[[[[[w-\w-\w-\s][[[[[[3-\s-\s[s-\s[s-[s][[[[[s][[[3]]]]]的)的)的)号号号))))))))在目前,((((((((((()))))目前((([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[|[0-9]{1,2}\)((25[0-5]{2[0-4][0-9]{2}{0-9]{1,2}\){2}(25[0-5]{2[0-4][0-9]{1[0-9]{2}{1,2}}})/);
返回模式.test(emailAddress);
};代码>
好啊
不幸的是,jQuery没有提供筛选第一次命中的方法。(.filter
将查找所有匹配项)。这就是我创建这个小jQuery扩展方法的原因,它将返回与过滤器不匹配的第一个元素
$.fn.extend({
firstMismatch: function(filter) {
for(var element, i = 0; element = this[i]; i++)
if(!filter.call(element)) return element;
}
});
现在要验证所有输入字段,只需像这样调用它。它是如何工作的<代码>$required。firstMismatch(inputsValidation)
将返回与筛选器不匹配的第一个元素。因此,如果它不返回任何元素,则所有元素都匹配。
将反转返回的值,因此没有元素返回true
return !$required.firstMismatch(inputsValidation)
&& !$emails.firstMismatch(emailsValidation)
这种方法几乎没有什么好处:您可以在一行中完成,它只检查一行,直到其中一行失败为止(如果所需的不验证,甚至根本无法检查邮件),并且它为您提供了使用该的选项
.firstmissmatch()
也可用于其他用途
解决方案
$('.with validation')。关于('submit',函数(e){
if(isValid()){
console.log(“验证成功”);
返回true;
}否则{
console.log(“验证失败”);
返回false;
}
});
函数isValid(){
变量$required=$('.required');
var$email=$('.email');
var emailsValidation=函数(){
返回validateEmail($(this.val());
}
var inputsValidation=函数(){
返回$(this).val().length>0;
}
返回!$必需。第一次不匹配(输入验证)
&&!$emails.firstMismatch(emailsValidation)
}
功能验证电子邮件(电子邮件){
返回true;
}
$.fn.extend({
第一个不匹配:函数(过滤器){
for(var元素,i=0;元素=此[i];i++)
if(!filter.call(element))返回元素;
}
});代码>
好啊
不幸的是,jQuery没有提供筛选第一次命中的方法。(.filter
将查找所有匹配项)。这就是我创建这个小jQuery扩展方法的原因,它将返回与过滤器不匹配的第一个元素
$.fn.extend({
firstMismatch: function(filter) {
for(var element, i = 0; element = this[i]; i++)
if(!filter.call(element)) return element;
}
});
现在要验证所有输入字段,只需像这样调用它。它是如何工作的<代码>$required。firstMismatch(inputsValidation)
将返回与筛选器不匹配的第一个元素。因此,如果它不返回任何元素,则所有元素都匹配。
将反转返回的值,因此没有元素返回true
return !$required.firstMismatch(inputsValidation)
&& !$emails.firstMismatch(emailsValidation)
这种方法没有什么好处:你可以做到