Ajax 无法使用 jquery 验证插件
Ajax not working with jquery validate plugin
我的 ajax success/failure 事件没有触发。我正在使用 jquery 验证,在其中我正在使用 ajax 进行表单提交。
我的表单正在提交,但 return 值(JSON 数据)未如 AJAX.
中所述显示
我尝试使用 alert() 但它也没有触发。
<script type="text/javascript">
$('document').ready(function()
{
$("#alert-form").validate({
ignore: '',
messages: {
select2Start: {
required: "Please select your starting point.",
}
},
//});
submitHandler: function(form) {
e.preventDefault;
var btn = $('#publish');
btn.button('loading');
alert('valid form submission');
$.ajax({
type: 'post',
url:$('form#alert-form').attr('action'),
cache: false,
dataType: 'json',
data: $('form#alert-form').serialize(),
beforeSend: function() {
$("#validation-errors_alert").hide().empty();
},
success: function(data) {
if(data.success == false)
{
var arr = data.errors;
$.each(arr, function(index, value)
{
if (value.length != 0)
{
$("#validation-errors_alert").append('<div class="alert alert-danger"><strong>'+ value +'</strong><div>');
}
});
$("#validation-errors_alert").show();
btn.button('reset');
}else{
// alert("Job Alert Configured successfully.");
$("#job_success_alert").append('<div class="alert alert-success"><strong>Alert Configured successfully.</strong><div>');
}
},
error: function(xhr, textStatus, thrownError) {
alert('Something went to wrong.Please Try again later...');
alert(thrownError);
btn.button('reset');
}
});
return false;
}
});
});
</script>
正如 Barmer 在他的第一条评论中所指出的,此代码存在几个问题...
submitHandler: function(form) {
e.preventDefault;
....
变量 e
在此 submitHandler
函数中不存在。
您未能在 .preventDefault()
中包含括号。
在此上下文中您不需要 .preventDefault()
,因为插件已经阻止了默认提交。完全删除此行。
注释:
为了良好的可读性,不要将 Allman 与 1TBS 样式代码格式混合使用...只要始终保持一致即可。此外,最好完全 avoid using Allman in JavaScript。
我的 ajax success/failure 事件没有触发。我正在使用 jquery 验证,在其中我正在使用 ajax 进行表单提交。 我的表单正在提交,但 return 值(JSON 数据)未如 AJAX.
中所述显示我尝试使用 alert() 但它也没有触发。
<script type="text/javascript">
$('document').ready(function()
{
$("#alert-form").validate({
ignore: '',
messages: {
select2Start: {
required: "Please select your starting point.",
}
},
//});
submitHandler: function(form) {
e.preventDefault;
var btn = $('#publish');
btn.button('loading');
alert('valid form submission');
$.ajax({
type: 'post',
url:$('form#alert-form').attr('action'),
cache: false,
dataType: 'json',
data: $('form#alert-form').serialize(),
beforeSend: function() {
$("#validation-errors_alert").hide().empty();
},
success: function(data) {
if(data.success == false)
{
var arr = data.errors;
$.each(arr, function(index, value)
{
if (value.length != 0)
{
$("#validation-errors_alert").append('<div class="alert alert-danger"><strong>'+ value +'</strong><div>');
}
});
$("#validation-errors_alert").show();
btn.button('reset');
}else{
// alert("Job Alert Configured successfully.");
$("#job_success_alert").append('<div class="alert alert-success"><strong>Alert Configured successfully.</strong><div>');
}
},
error: function(xhr, textStatus, thrownError) {
alert('Something went to wrong.Please Try again later...');
alert(thrownError);
btn.button('reset');
}
});
return false;
}
});
});
</script>
正如 Barmer 在他的第一条评论中所指出的,此代码存在几个问题...
submitHandler: function(form) {
e.preventDefault;
....
变量
e
在此submitHandler
函数中不存在。您未能在
.preventDefault()
中包含括号。在此上下文中您不需要
.preventDefault()
,因为插件已经阻止了默认提交。完全删除此行。
注释:
为了良好的可读性,不要将 Allman 与 1TBS 样式代码格式混合使用...只要始终保持一致即可。此外,最好完全 avoid using Allman in JavaScript。