2015-04-29 48 views
-1

我想检查某个类中的任何元素是否满足某些条件。 示例。如果某个类中的任何元素满足条件,则为查询

$(document).on('click','.modalInner_form_nav', function(){ 
    var input = $(this).parents('.modalInner_form').find('.validate_g'); 
    //$(input).each(function(index, element) { 
    if ($(input).val() == ''){ 
     $(input).css('border', '#BB0000 1px solid'); 
     return false; 
    } 
    else { 
     /////////go to next/////////// 
     if ($(this).parents('.modalInner_form').is(':last-child')){ 

     } 
     else { 
     $(this).parents('.modalInner_form').slideUp(); 
     $(this).parents('.modalInner_form').next('.modalInner_form').slideDown(); 
     }   
       //////////// 
    } 
}); 

如果所有输入字段都是空的,则返回false,但如果此类中的一个不为空,则返回true。

+1

这段代码有问题,还是只是想重构它? –

+0

@RoryMcCrossan有一个问题,如果任何“”输入“不为空:”if($(input).val()==''){“,它不会返回false,我不想要如果“validate_g”类中的任何输入字段为空 – Relm

+0

@ Relm share'fiddle'链接 – ozil

回答

1

的问题是你有一个内在的功能,所以

$(document).on('click', '.modalInner_form_nav', function() { 
    var $form = $(this).parents('.modalInner_form'); 
    var $input = $form.find('.validate_g'); 

    var valid = true; 
    $input.each(function (index, element) { 
     var $this = $(this) 
     if ($this.val() == '') { 
      valid = false; 
      $this.css('border', '#BB0000 1px solid'); 
     } 
    }); 

    if (valid) { 
     if ($form.is(':last-child')) { 
      //do something else 
     } else { 
      $form.slideUp(); 
      $form.next('.modalInner_form').slideDown(); 
     } 

    } 
}); 
+0

So $ input === $(input);? – Relm

+1

@Relm yes ...'var $ this = $(this)' - 用于缓存引用 –

+0

Ohhhhhhhh好吧,看起来不那么干净哈哈; – Relm

0

不能确定你的问题是什么,但在这里是为了提高代码的方式。

$(this).parents('.modalInner_form')保存在一个变量中,而不是不断重复这一行代码。然后你可以用变量替换所有这些方法调用,并只需调用变量上所需的任何函数。

var varName = $(this).parents('.modalInner_form'); 
varName.find('.validate_g'); 
... 
if(varName.is(':last-child')){ 
... 
相关问题