我使用 formvalidation.io 库来验证脚本中的数据。它在进行正常的页面提交时工作得很好,但是当我选择使用 jquery 并序列化来提交它两次时。这可以在博客以及提交时发送的 2 封电子邮件中看到。如果我从 javascript 中注释掉 formvalidation,它会发布一次。我尝试重新组织和重新排列 javascript 无济于事。相关代码:
$(document).ready(function() {
/* FORM-VALIDATION */
$('#ContactForm').formValidation({
framework: 'bootstrap',
icon: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
'fname': {
validators: {
notEmpty: {
message: 'The first name is required'
},
stringLength: {
min: 2,
max: 40,
message: 'First name must be at least 2 characters long'
}
}
},
'lname': {
validators: {
notEmpty: {
message: 'The last name is required'
},
stringLength: {
min: 2,
max: 40,
message: 'First name must be at least 2 characters long'
}
}
},
'email': {
validators: {
notEmpty: {
message: 'The email address is required'
},
emailAddress: {
message: 'The input is not a valid email address'
}
}
},
'message': {
validators: {
notEmpty: {
message: 'Message text is required'
},
stringLength: {
min: 10,
max: 1000,
message: 'Your message must be between 10 and 1000 characters in length.'
}
}
}
}
})
/* FORM-VALIDATION */
/* SERIALIZE & SUBMIT FORM */
$(function() {
var form = $('#ContactForm');
var formMessages = $('#form-messages');
$(form).submit(function(e) {
e.preventDefault();
var formData = $(form).serialize();
$("#Result").html( "" );
$.ajax({
type: 'POST',
url: $(form).attr('action'),
data: formData,
success: function(html) { $("#Result").html( html ); }
});
});
});
/* SERIALIZE & SUBMIT FORM */
});
您可以在以下位置查看现场演示: http: //www.dottedi.biz/demo/code/public/serialize+formvalidation/