我在表单提交后显示加载消息:
<div id="loading" style="display:none;"><img class='image-widthauto' src="/img/Progressbar.gif" /></div>
<div id="content-alert"></div>
<form id="login" method="POST" action="" onsubmit="$('#loading').show();">
..... //input
</form>
我使用jquery validation插件验证我的表单:
$(document).ready(function () {
$("#login").validate({
errorElement: "div",
errorPlacement: function(error, element) {
error.appendTo("div#content-alert").addClass('alert alert-danger');
},
rules: {
name: {
required: true,
minlength: 6,
alpha: true,
},
},
messages: {
name: {
required: "requied message",
minlength: "6 character"
},
}
});
});
现在,在表单提交中,我看到加载消息和验证错误框(提交空表单值)。当我的表单没有使用验证插件时出错时,我需要显示加载消息。
如何解决这个问题?
答案 0 :(得分:2)
不使用onsubmit
属性,而是使用验证程序的submitHandler
回调
$(document).ready(function () {
$("#login").validate({
errorElement: "div",
errorPlacement: function (error, element) {
error.appendTo("div#content-alert").addClass('alert alert-danger');
},
rules: {
name: {
required: true,
minlength: 6,
alpha: true,
},
},
messages: {
name: {
required: "requied message",
minlength: "6 character"
},
},
submitHandler: function (form) {
$('#loading').show();
form.submit();
}
});
});
答案 1 :(得分:0)
尝试此操作:使用.valid()
方法决定是否显示加载消息。
HTML:
<div id="loading" style="display:none;"><img class='image-widthauto' src="/img/Progressbar.gif" /></div>
<div id="content-alert"></div>
<form id="login" method="POST" action="" onsubmit="return showLoading();">
..... //input
</form>
jQuery;
var form = $("#login");
function showLoading()
{
if(form.valid())
{
$('#loading').show();
return true;
}
return false;
}
$(document).ready(function () {
form.validate({
errorElement: "div",
errorPlacement: function(error, element) {
error.appendTo("div#content-alert").addClass('alert alert-danger');
},
rules: {
name: {
required: true,
minlength: 6,
alpha: true,
},
},
messages: {
name: {
required: "requied message",
minlength: "6 character"
},
}
});
});
答案 2 :(得分:0)
根据我的理解,您希望在表单提交时没有错误地显示element
id
loading 。
在表单有效时回调处理实际提交。获取表单作为唯一参数。替换默认提交。在验证后通过Ajax提交表单的正确位置。
所以你可以这样覆盖submithandler
:
你的html(只是表单元素,其余部分可以保持不变):
<form id="login" method="POST" action="#"> //Don't need the onsubmit here
你的javascript可能是:
$("#login").validate({
errorElement: "div",
errorPlacement: function(error, element) {
error.appendTo("div#content-alert").addClass('alert alert-danger');
},
submitHandler: function(form) {
$('#loading').show(); //Show the required element here
form.submit(); //Submit the form normally if needed
},
rules: {
name: {
required: true,
minlength: 6,
alpha: true,
},
},
messages: {
name: {
required: "requied message",
minlength: "6 character"
},
}
});
希望它能让你开始朝着正确的方向前进。