所以我使用 jquery validate 来验证表单,它在大部分情况下都有效,但我的确认密码输入没有执行任何操作。当我告诉它像其他字段一样是必填字段时,它并没有表明它是必填字段,并且我使用的 equalTo: 方法不起作用,但我不认为 equalTo : 方法是问题,因为 required:true 也不起作用。
这是我的 JQuery
<script type="text/javascript">
(function($,W,D)
{
var JQUERY4U = {};
JQUERY4U.UTIL =
{
setupFormValidation: function()
{
//form validation rules
$("#user").validate({
wrapper: 'div',
errorLabelContainer: "#messageBox",
debug: false,
rules: {
username: {
required: true,
minlength: 5
},
password: {
required: true,
minlength: 5
},
confirmPassword: {
required: true,
equalTo: "#password"
},
termsOfService: "required",
},
messages: {
username: {
required: "Please enter a username",
minlength: "Must be at Least 5 characters",
},
password: {
required: "Please enter a password",
minlength: "Must be at least 5 characters"
},
confirmPassword:{
required: "Confirm Password required",
equalTo: "Passwords don't match"
},
termsOfService: "please accept our terms of service",
},
submitHandler: function(form) {
form.submit();
}
});
}
}
//when the dom has loaded setup form validation rules
$(D).ready(function($) {
JQUERY4U.UTIL.setupFormValidation();
});
})(jQuery, window, document);
</script>
这是我的 jsp 页面表单
<form:form commandName="user" method="POST">
Username: <br><form:input path="username"/><br><br>
Password: <br><form:password path="password"/><br><br>
Confirm Password: <br><input type="password" id="confirmPassword"/><br><br>
Terms of Service<form:checkbox path="termsOfService" id="termsOfService" style="vertical-align: middle; margin-left: 15px;"/><br><br>
<input type ="submit" id="submitBtn" value="Submit"/><br><br>
</form:form>
最佳答案
正如评论中提到的,我不熟悉 JSP,但非常熟悉 jQuery 验证插件,
首先,您缺少密码输入id="password"
<form:password path="password" id="password" />
然后路径
确认密码输入
<form:password path="confirmPassword" id="confirmPassword"/>
jQuery 验证插件根据输入 name
属性或 JSP path
设置规则,因此由于丢失而无法找到 确认密码
path
和 equalTo
失败,因为您使用 "#password"
绑定(bind)它,但没有给出 id="password"
密码
输入
关于javascript - Jquery 验证仅部分工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33205553/