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 在jQuery对象中循环使用每个对象并计算一个条件_Javascript_Jquery - Fatal编程技术网

Javascript 在jQuery对象中循环使用每个对象并计算一个条件

Javascript 在jQuery对象中循环使用每个对象并计算一个条件,javascript,jquery,Javascript,Jquery,我在下面创建了一个非常简单的脚本,在这个脚本中,我提出了一个问题,而这个问题似乎在。如您所见,我希望循环一组jQuery对象,并返回true或false(如果其中一个为false,则返回。每个循环将中断,因此最终结果将为false) 由于某些原因,验证似乎无法正常工作 $('.with validation')。关于('submit',函数(e){ if(isValid()){ console.log(“验证成功”); 返回true; }否则{ console.log(“验证失败”); 返回f

我在下面创建了一个非常简单的脚本,在这个脚本中,我提出了一个问题,而这个问题似乎在。如您所见,我希望循环一组jQuery对象,并返回
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)
这种方法没有什么好处:你可以做到