Jquery验证,submithandler不起作用

前端之家收集整理的这篇文章主要介绍了Jquery验证,submithandler不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在提交之前对表单的某些字段进行一些额外的检查和格式化.因此我使用了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的验证器.删除它,它会正常工作.如果需要,可以创建自定义浮点验证器.

Working Fiddle

检查可用规则列表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]未定义,证明您使用的是不存在的验证程序.

所以我检查了可用的验证方法列表和您的规则,发现您使用的浮动规则不可用.

因此JS抛出此错误并停止执行,因此您的提交处理程序未被调用且表单正在提交(除非您使用JS阻止,否则这是默认行为).

猜你在找的jQuery相关文章