2012-06-25 131 views
0

我试图将4个输入字段组合成一个jQuery函数,以便它检查每个输入作为其keyup'd,当所有框达到4的长度,然后列表项更改为确认各个领域都充满jQuery多个输入和检查长度

HTML

<div class="cardNumber"> 
    <input type="text" value="" maxlength="4" name="ccn1" id="ccn1"> 
    <input type="text" value="" maxlength="4" name="ccn2" id="ccn2"> 
    <input type="text" value="" maxlength="4" name="ccn3" id="ccn3"> 
    <input type="text" value="" maxlength="4" name="ccn4" id="ccn4"> 
</div> 

<ul> 
    <li class="checkNumber">Card Number</li> 
</ul> 

jQuery的

$(".cardNumber input[name=ccn1], .cardNumber input[name=ccn2], .cardNumber input[name=ccn3], .cardNumber input[name=ccn4]").keyup(function() { 
    $(".cardNumber input[name=ccn1], .cardNumber input[name=ccn2], .cardNumber input[name=ccn3], .cardNumber input[name=ccn4]").each(function() { 
     if ($(".cardNumber input[name=ccn1], .cardNumber input[name=ccn2], .cardNumber input[name=ccn3], .cardNumber input[name=ccn4]").length >= '4') { 
      $("li.checkNumber").addClass("checked"); 
     } 
    }); 
}); 

演示:http://jsfiddle.net/fz4wF/

回答

6
$(':input[name^=ccn]').keyup(function() { 
    var check = $(':input[name^=ccn]').filter(function() { 
     return $.trim(this.value).length < 4; 
    }).length === 0; 

    $("li.checkNumber").toggleClass("checked",check); 
}); 

DEMO

+0

+ 1..Like这种方法 –

+0

我这个答案去,但编辑它是下列 [CODE] $( ':输入[名^ = CCN]')KEYUP(函数(){ 。 var check = $(':input [name^= ccn]')。filter(function(){ return $ .trim(this.value).length <4; })。length === 0; 如果(检查){(“li.checkNumber”).addClass(“checked”); } else {$(“li.checkNumber”)。removeClass(“checked”); } }); [/ CODE] – ngplayground

+0

@DonaldSutherland,带有秒参数(check)的toggleClass执行if if语句的操作。对? – aquinas

4

事情是这样的:

http://jsfiddle.net/fz4wF/19/

$(".cardNumber input").keyup(function(){  
    var allfilled = true; 
    $(".cardNumber input").each(function() { 
     if($(this).val().length < 4) { 
      allfilled =false; 
      return false; 
     } 
    }); 

    $("li.checkNumber").toggleClass("checked",allfilled);  
});​