2012-03-09 50 views
0

我需要驗證以下表單。有些字段只是必需的,但是電子郵件字段需要包含電子郵件驗證。我已經嘗試了下面的代碼:調用jquery驗證是否有必要的輸入並進行電子郵件驗證

注意:如果我拿出'規則'部分,驗證適用於所有必填字段,但是我需要它首先檢查是否有值frmUser-email輸入(必需),然後如果那裏有價值,請進行電子郵件驗證。

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#adduser").validate({ 

     rules: { 
      frmUser-email: { 
       required: true, 
       email: true 
      } 
     }, 
     errorClass: "my-error-class", 
      validClass: "my-valid-class", 
      groups: { 
       required1: "frmUser-username frmUser-password frmUser-secretword frmUser-secretwordprompt frmUser-usertype" 
     }, 
      errorPlacement: function(error, element) { 
      error.appendTo('#errorlabel') 
     } 

    }); 
}); 

<form id="adduser" name="adduser" method="post" action="?vars=<?php echo URLEncryptEncode('module=user&call=add-process',$urlp);?>"> 
<table border="0" cellspacing="0" cellpadding="0" class="forminput"> 
    <tr> 
    <td>User Login Name:</td> 
    <td><input name="frmUser-username" type="text" size="25" class="required"/></td> 
    </tr> 
    <tr> 
    <td>Password:</td> 
    <td><input name="frmUser-password" type="text" size="25" class="required"/></td> 
    </tr> 
    <tr> 
    <td>Secret Word:</td> 
    <td><input name="frmUser-secretword" type="text" size="25" class="required"/></td> 
    </tr> 
    <tr> 
    <td>Secret Word Prompt:</td> 
    <td><input name="frmUser-secretwordprompt" type="text" size="25" class="required"/></td> 
    </tr> 
    <tr> 
    <td>Telephone:</td> 
    <td><input name="frmUser-telephone" type="text" size="15"/></td> 
    </tr> 
    <tr> 
    <td>E-Mail:</td> 
    <td><input id="frmUser-email" name="frmUser-email" type="text" size="30"/></td> 
    </tr> 
    <tr> 
    <td></td> 
    <td colspan="2"><input type="submit" value="ADD NEW USER" class="button" /></td> 
    </tr> 
    <tr> 
     <td></td> 
    <td><label class="errorlabel" id="errorlabel"></label></td> 
    </tr> 
</table> 
</form> 

希望有人可以幫忙..在此先感謝

回答

1

首先,你可以在你輸入的同時指定類:

<input id="frmUser-email" name="frmUser-email" type="text" class="required email" size="30"/> 

但如果你使用的是規則對象,你只需要引用fromUser-email,因爲中間的使其無效。所以,離開一切不變,但對你的規則對象做到這一點:

rules: { 
     'frmUser-email': { 
      required: true, 
      email: true 
     } 
    } 

做一個或另一個,你應該罰款。

+0

我知道這會很簡單。謝謝! – 2012-03-14 16:49:10