2013-02-28 40 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

相關問題