AJAX replaceWith和Jquery验证

时间:2011-04-27 23:47:56

标签: ajax jquery jquery-validate

我有一个5页的表单,在每次提交时使用replaceWith交换表单。

除了在最后一页上进行验证外,它一切都很好用。好像它只是没有做document.ready(插入了page0)。我可以在第0页上显示警告,但随后由replaceWith添加的html不会验证。

提前感谢您提供的任何帮助。

function sendTo(where) {        
var datastring = $("#QouteForm").serialize();

    //show the loading sign
    $('.loading').show();

$.ajax({
        url: where,
        type: "GET",
        data: datastring, 
        cache: false,
        success: function (html) {             
            //hide the form
            $('#formdiv').fadeOut('slow',complete);
            function complete() { 
                $('#formdiv').fadeIn('slow').replaceWith(html); 
                $('.loading').hide();
            }
        }
    });
return false;
}

$("#QouteForm").validate({
    submitHandler: function(form) {
$('#QouteForm').submit();
    }
});

//custom method to check if the field is equal to its default value
$.validator.addMethod(
    'notEqual', function (value, element) {
        return value !== element.defaultValue;
    }, 'Please enter a value.'
);

//method to check if it's a valid US phone number
jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
    phone_number = phone_number.replace(/\s+/g, ""); 
    return this.optional(element) || phone_number.length > 9 &&
    phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
});

//do the validation
$(function() {
$("#QouteForm").validate({  
    rules: {
        firstname: "notEqual",
        lastname: "notEqual",
        company: "notEqual",
        phone: {
            required: true,
            phoneUS: true
        },
        email: {
            required: true
        }
    }

});
});

0 个答案:

没有答案