我想在提交之前对表单的某些字段进行一些额外的检查和格式化.因此我使用了bassistance
jquery验证插件.它运行良好,因为它正确显示所有的manadatory错误消息,但是只要我提供必要的值,表单就会提交.此时我甚至不确定是否触发了submitHandler.有任何想法吗?
表格html:http://jsfiddle.net/7PAZU/
$(function() { $("#commentForm").validate({ rules: { bill_first_name: { required: true },bill_last_name: { required: true },email: { required: true,email: true },Phone: { required: true,number: true },bill_address_one: { required: true },bill_city: { required: true },bill_state_or_province: { required: true },charge_total: { required: true,float: true },},messages: { bill_first_name: { required: "Please put in First Name" },bill_last_name: { required: "Please put in last Name" },email: { required: "Please enter a valid email" },phone: { required: "Please enter a valid Phone Number" },bill_address_one: { required: "Please put in Address" },bill_city: { required: "Please put in City" },bill_state_or_province: { required: "Please put in state" },charge_total: { required: "Please put Amount In Whole number such as 10.00",number: "Please put in Amount In Whole number such as 10.00" },submitHandler: function(frm) { $("#charge_total").val(parseFloat($("#charge_total").val()).toFixed(2)); alert("Dukhche Na"); return false; } }); })
解决方法
您的代码失败,因为您使用的是不存在的验证规则.
charge_total: { required: true,float: true // there's no validator named `float` } // Comma removed here
但是该插件中没有名为float的验证器.删除它,它会正常工作.如果需要,可以创建自定义浮点验证器.
检查可用规则列表http://docs.jquery.com/Plugins/Validation#Validator
我怎么找到这个?
我检查了控制台,发现这个错误被抛出
Uncaught TypeError: Cannot call method 'call' of undefined
var result = $.validator.methods[method] .call( this,element.value.replace(/\r/g,""),element,rule.parameters );
含义$.validator.methods [method]未定义,证明您使用的是不存在的验证程序.
所以我检查了可用的验证方法列表和您的规则,发现您使用的浮动规则不可用.