2013-02-28 38 views
0

我想验证(不允许空白)这两个字段中的任何字段!从here得到了一些想法,但无法实现它在1.9.1版本中。验证(以空白字段)jquery-1.9.1.min中两个字段中的任何一个字段

即使两个字段都是有效的,这也很好。 任何输入.....家伙

这里是我的jQuery

jQuery.validator.addMethod("require_from_group", function(value, element, options) { 
    alert("xxx"); 
    var valid = $(options[1], element.form).filter(function() { 
     return $(this).val(); 
    }).length >= options[0]; 

    if(!$(element).data('reval')) { 
     var fields = $(options[1], element.form); 
     fields.data('reval', true).valid(); 
     fields.data('reval', false); 
    } 
    return valid; 
}, jQuery.format("'Please enter either username/ email address to recover password'/Please fill out at least {0} of these fields.")); 

$("#forgot_pass_form").validate({ 
    rules: { 
     uname: { require_from_group: [1,".send_username"] }, 
     email: { require_from_group: [1,".send_password"] } 
    } 
}); 

,这里是我的html

<form action="#" class="send_form" id="forgot_pass_form" method="POST"> 
       <fieldset> 
        <div class="send_row"> 
         <label class="padding-top10">Email</label> 
         <input type="text" class="send_email" id="email" name="email" /> 
         <em>You need to type an email address</em> 
        </div> 

        <div class="send_row option">OR</div> 

        <div class="send_row"> 
         <label class="padding-top10">Username</label> 
         <input type="text" class="send_username" id="uname" name="uname" /> 
        </div> 


        <div class="send_row send_submitforgotuser"> 
         <input type="submit" value="Submit" /> 
        </div> 
       </fieldset> 
       </form> 

我只想验证任何领域出这两个空白字段的。

+0

那么,什么是不工作? – 2013-02-28 11:56:49

+0

整个事情,甚至无法看到警报:( – bigZero 2013-02-28 11:57:26

+0

我把它复制到JSFiddle,除了警报,我得到了警报 – 2013-02-28 11:59:46

回答

0

为每个输入添加一个minlength属性。如果添加最小长度1,它们不能为空。如果您添加“电子邮件”类,它将验证电子邮件地址。

HTML

<form action="#" class="send_form" id="forgot_pass_form" method="POST"> 
    <fieldset> 
     <div class="send_row"> 
      <label class="padding-top10">Email</label> 
      <input type="text" class="send_email email" id="email" name="email" /> 
      <em>You need to type an email address</em> 
     </div> 

     <div class="send_row option">OR</div> 

     <div class="send_row"> 
      <label class="padding-top10">Username</label> 
      <input type="text" class="send_username" id="uname" name="uname" minlength="2" /> 
     </div> 


     <div class="send_row send_submitforgotuser"> 
      <input type="submit" value="Submit" disabled="" /> 
     </div> 
    </fieldset> 
</form> 

JS:

$(document).ready(function() { 
    $("#forgot_pass_form").validate(); 
    $("#forgot_pass_form input").on('change', function() { 
     if ($('#forgot_pass_form').valid()) { 
      $('#forgot_pass_form input[type="submit"]').removeAttr('disabled'); 
     } else { 
      $('#forgot_pass_form input[type="submit"]').attr('disabled', 'true'); 
     } 
    }); 
}); 

例:http://jsfiddle.net/jeffshaver/K2XAX/3/

+0

杰夫感谢这个回应,但想提交之前验证空白任何领域,但它显示#403和CSRF验证失败。请求中止。 – bigZero 2013-02-28 12:26:25

+0

http:///jsfiddle.net/jeffshaver/K2XAX/2/ 这工作正常,它在提交之前进行验证,只需禁用提交按钮,直到填写完为止 – 2013-02-28 12:46:48

+0

例如:http://jsfiddle.net/jeffshaver/K2XAX/3/ – 2013-02-28 12:53:26

相关问题