Mainpupling Jquery validate для ввода по мере необходимости и проверки электронной почты

Мне нужно проверить следующую форму. Некоторые поля являются обязательными, однако поле электронной почты должно включать проверку электронной почты. Я пробовал следующий код:

Примечание. Если я уберу часть «правила», проверка будет работать во всех обязательных полях, однако мне нужно, чтобы сначала проверить, есть ли значение ввода 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>

Hopefully someone can help out.. Thanks in advance


person Michael Wilson    schedule 09.03.2012    source источник


Ответы (1)


Во-первых, вы можете просто указать оба класса в своем вводе:

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

Но если вы настроены на использование объекта правил, вам просто нужно заключить fromUser-email в кавычки, потому что - в середине делает его недействительным. Так что оставьте все остальное без изменений, но сделайте это для вашего объекта правил:

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

Делайте одно или другое, и все будет хорошо.

person Ryley    schedule 09.03.2012
comment
Я знал, что это будет что-то простое. Спасибо! - person Michael Wilson; 14.03.2012