自定义表单验证和提交
Custom Form Validation and Submit
当选择提交按钮时,我会运行表单验证,但我不希望运行默认的提交函数。相反,我想运行一个ajax post代码来将数据存储在表单中,同时从服务器端发布数据。
我很难找到取消默认提交并添加ajax代码的位置。
这是我有的验证代码
$("#formEnroll").validate({
errorElement:"p",
submitHandler: function(form) {
var phoneNumber = form.day_phone.value;
var phoneParts = phoneNumber.split("-");
form.dayArea.value = phoneParts[0];
form.dayPrefix.value = phoneParts[1];
form.daySuffix.value = phoneParts[2];
form.submit();
}
});
这是我想运行的ajax代码,而不是默认的提交
$.ajax({
type: "POST",
url: "/php/localProxy.php",
data: $('#formEnroll').serialize(),
success: function (response) {
document.location = 'http://www.xxxx.com/thank-you';
},
error: function () {
alert('There was a problem!'); // handle error
}
});
您可以调用ajax函数,而不是form.submit();form.submit();将使用默认提交方式提交您的代码。
$('#formEnroll').on('submit', function(e){
e.preventDefault();
$(this).validate({
errorElement:"p",
submitHandler: function(form) {
var phoneNumber = form.day_phone.value;
var phoneParts = phoneNumber.split("-");
form.dayArea.value = phoneParts[0];
form.dayPrefix.value = phoneParts[1];
form.daySuffix.value = phoneParts[2];
submitform();
}
});
})
function submitform(){
$.ajax({
type: "POST",
url: "/php/localProxy.php",
data: $('#formEnroll').serialize(),
success: function (response) {
document.location = 'http://www.xxxx.com/thank-you';
},
error: function () {
alert('There was a problem!'); // handle error
}
});
}
您可以将验证插件封装到通用表单提交函数中,以停止标准执行。
$('#formEnroll').on('submit', function(e)
{
e.preventDefault(); // stop form submission
// Run validation
$(this).validate({
errorElement:"p",
submitHandler: function(form) {
var phoneNumber = form.day_phone.value;
var phoneParts = phoneNumber.split("-");
form.dayArea.value = phoneParts[0];
form.dayPrefix.value = phoneParts[1];
form.daySuffix.value = phoneParts[2];
submitform(); // call your ajax function here
}
});
});
function submitform(){
$.ajax({
type: "POST",
url: "/php/localProxy.php",
data: $('#formEnroll').serialize(),
success: function (response) {
document.location = 'http://www.xxxx.com/thank-you';
},
error: function () {
alert('There was a problem!'); // handle error
}
});
除了使用事件对象e
,您还可以在.on
函数的末尾仅使用return false;
来停止触发默认事件。
您可以通过点击提交按钮,使用jquery中的点击事件通过ajax发送数据,该函数应为return false
,通过使用ajax发送数据和避免默认提交的方式来避免默认提交。
相关文章:
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 自定义表单验证和提交
- 带有验证和隐藏字段值的提交按钮
- jQuery:使用“jQuery验证”后无法提交表单's远程验证
- 如何在使用ajax提交的codeigniter中使用form_validation验证表单数据
- 我这里有两个表格,在提交验证第一个表格后,我如何转到第二个表格进行验证
- 未执行Ajax隐藏表单提交验证
- 提交/验证Jquery
- 使用提交验证日期输入字段
- JavaScript表单提交验证会干扰其他提交按钮
- HTML表单提交验证没有't为JS函数工作
- j查询表单提交验证未提交
- 仅将 jQuery 表单提交验证应用于 2 个提交按钮中的 1 个
- 为什么这个表单总是提交…验证javascript不起作用
- jQuery blockUI插件不工作在ASP.. NET提交验证器Chrome/IE9
- Redux表单提交验证不设置错误消息
- JavaScript 在提交验证时无法正常工作,当我单击提交它询问到期日期和 CVV
- 表单提交验证动态下拉列表数
- 禁用JS提交验证检查
- onChange提交验证