jQuery验证即使失败也会提交非ajax
我使用的是jQueryValidate,它实际上是有效的,这意味着它会显示错误并要求用户修复错误,但如果用户单击submit,它就会提交,没有问题。有人能帮我吗?代码示例如下:jQuery验证即使失败也会提交非ajax,jquery,jquery-validate,Jquery,Jquery Validate,我使用的是jQueryValidate,它实际上是有效的,这意味着它会显示错误并要求用户修复错误,但如果用户单击submit,它就会提交,没有问题。有人能帮我吗?代码示例如下: <form class="col-lg-2 well" id="filterForm"> <p><fmt:message key="name1"/></p> <input id="name" type="text" placeholder="name"
<form class="col-lg-2 well" id="filterForm">
<p><fmt:message key="name1"/></p>
<input id="name" type="text" placeholder="name" value="${searchBean.name}" name="name" class="input-large text-primary">
<p><fmt:message key="minimum.price"/></p><input id="minPrice" type="text" placeholder="minPrice" value="${searchBean.minPrice}" name="minPrice" class="input-large text-primary">
<p><fmt:message key="maximum.price"/></p>
<input id="maxPrice" type="text" placeholder="maxPrice" value="${searchBean.maxPrice}" name="maxPrice" class="input-large text-primary">
<p><fmt:message key="manufacturer1"/></p>
<input id="manufacturer" type="text" placeholder="manufacturer" value="${searchBean.manufacturer}" name="manufacturer" class="input-large text-primary">
<p>
<fmt:message key="categories"/>
<c:forEach var="cat" items="${requestScope.categories}">
<p><c:out value="${cat.second}"/></p>
<input type="checkbox" name="category" value="<c:out value="${cat.first}"/>"/>
</p>
</c:forEach>
<p><fmt:message key="sorts"/></p>
<select name="sort">
<option value="name"><fmt:message key="name"/></option>
<option value="manufacturer"><fmt:message key="manufacturer"/></option>
<option value="price"><fmt:message key="price"/></option>
</select>
<select name="sortType">
<option value="ASC"><fmt:message key="asc"/></option>
<option value="DESC"><fmt:message key="desc"/></option>
</select>
</p>
<p><fmt:message key="pagesize"/>
<input type="text" name="pageSize" id="pageSize" placeholder="pageSize" value="${searchBean.page.pageSize}">
</p>
<p><input type="submit" value="Filter" class="btn btn-primary"></p>
</form>
下面是验证函数:
$('#filterForm').validate(
{
rules: {
name: {
maxLength: 50,
required: false
},
minPrice: {
required: validatePrices() == true,
min: 0,
digits: true
},
maxPrice: {
required: validatePrices() == true,
min: 1,
digits: true
},
manufacturer: {
maxLength: 50,
required: false
},
pageSize: {
required: true,
min: 0,
number: true
}
},
messages: {
name: {
maxLength:<fmt:message key="length.should.be.50.or.less"/>
},
minPrice: {
min:<fmt:message key="min.length.is.1"/>,
required:<fmt:message key="min.price.should.be.less.than.max"/>
},
manufacturer: {
maxLength:<fmt:message key="length.should.be.50.or.less"/>
},
maxPrice: {
min:<fmt:message key="min.length.is.1"/>,
required: validatePrices() == true
},
pageSize: {
min:<fmt:message key="min.length.is.1"/>
}
}
}
)
});
$(“#过滤器执行”)。验证(
{
规则:{
姓名:{
最大长度:50,
必填项:false
},
价格:{
必需:validatePrices()==true,
分:0,,
数字:真
},
最高价格:{
必需:validatePrices()==true,
民:1,,
数字:真
},
制造商:{
最大长度:50,
必填项:false
},
页面大小:{
要求:正确,
分:0,,
数字:对
}
},
信息:{
姓名:{
最大长度:
},
价格:{
最小:,
必修的:
},
制造商:{
最大长度:
},
最高价格:{
最小:,
必需:validatePrices()==true
},
页面大小:{
最小值:
}
}
}
)
});
Thx以获取帮助。只要存在验证错误,jQuery验证插件就会阻止正常表单提交。但是,您的代码存在一些可能会干扰插件正常运行的潜在问题 1)您的代码:
maxLength: 50,
required: validatePrices() == true
required:<fmt:message key="min.price.should.be.less.than.max"/>
没有称为maxLength
的方法
2)您的代码:
maxLength: 50,
required: validatePrices() == true
required:<fmt:message key="min.price.should.be.less.than.max"/>
这需要一个布尔值或一个函数。看起来应该更像这样
required: function() {
return validatePrices() == true;
}
required: "min price should be less than max"
3)您的代码:
maxLength: 50,
required: validatePrices() == true
required:<fmt:message key="min.price.should.be.less.than.max"/>
在稍微清理了一下格式之后,代码中似乎出现了一些错误。(例如,规则对象中的额外
标记、额外}
等)。我建议在尝试进行故障排除之前,先通过一些在线代码验证程序运行代码,以确保代码是干净的。