我有一个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
}
}
});
});