我需要验证以下表单。某些字段只是必需的,但电子邮件字段需要包含电子邮件验证。我尝试了以下代码:
注意:如果我删除了规则'部分,验证适用于所有必填字段,但我需要首先检查是否有值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>
希望有人可以提供帮助..提前致谢
答案 0 :(得分:1)
首先,您可以在输入中指定两个类:
<input id="frmUser-email" name="frmUser-email" type="text" class="required email" size="30"/>
但是如果你开始使用rules对象,你只需要引用fromUser-email
,因为中间的-
使它无效。因此,保留其他所有内容,但为规则对象执行此操作:
rules: {
'frmUser-email': {
required: true,
email: true
}
}
做其中一个,你应该没事。