Jquery 使用ajax重新提交表单时隐藏错误
如果用户没有正确填写所有字段,则会显示一个包含所有错误的错误块。此时,如果他们再次单击submit,当小加载程序旋转并再次提交表单时,错误消息将保留在那里。我试图隐藏错误消息,但即使在初次提交时也隐藏了错误消息,这是不对的。如果错误消息是可见的,它只需要隐藏它Jquery 使用ajax重新提交表单时隐藏错误,jquery,ajax,Jquery,Ajax,如果用户没有正确填写所有字段,则会显示一个包含所有错误的错误块。此时,如果他们再次单击submit,当小加载程序旋转并再次提交表单时,错误消息将保留在那里。我试图隐藏错误消息,但即使在初次提交时也隐藏了错误消息,这是不对的。如果错误消息是可见的,它只需要隐藏它 $.ajax({ type: "POST", url: "process.php", data: str, beforeSend: function() { $("#contact-subm
$.ajax({
type: "POST",
url: "process.php",
data: str,
beforeSend: function() {
$("#contact-submit").hide();
$("#loading").show();
},
success: function(response) {
$('#error').html(response);
if (!response || response.length == 0 || response.indexOf("Your message was sent") >= 0)
$("#contact-form").hide();
$("#contact-submit").show();
$("#loading").hide();
这是我的新解决方案:
$.ajax({
type: "POST",
url: "process.php",
data: str,
beforeSend: function() {
$("#contact-submit").hide();
$("#loading").show();
},
success: function(response) {
$('#error').html(response);
if (!response || response.length == 0 || response.indexOf("Your message was sent") >= 0)
$("#hfarm-contact-form").hide();
$("#contact-submit").show();
$("#loading").hide();
$('#error').fadeIn().html(response);
setTimeout(function(){
$('#error').fadeOut("Slow");
}, 5000);
您可以使用存储与contact submit元素关联的变量:
- 如果此值为true:则不可能再次提交,因为这是必需的 等待上一个ajax完成
- 如果该值为false,则可以执行新的ajax调用
complete: function(jqXHR, textStatus ) {
重置显示和隐藏元素等值加上此新变量的值
delay函数仅用于代码段目的,以降低执行速度。
我的片段:
功能延迟(ms){
var cur_d=新日期();
var cur_ticks=cur_d.getTime();
var ms_passed=0;
while(ms_通过
加载。。。。。。。
感谢您的回复。这对我来说是相当先进的。如果用户在初次提交后再次按submit,是否有更简单的方法来消除错误消息?另外,看起来您在成功提交后删除了隐藏整个表单的代码(我想?),好的,当然。我得绕着它转一圈,看看能走多远。一旦我取得了进步(或没有进步),我会发回邮件;)我已经编辑了我最初的帖子,我想选择最适合我的答案。当然,除非有人认为这是不正确的或不起作用。对不起,我不完全理解你的评论。你是说我的代码放错地方了吗?@Jonathan是的,我想你的支票代码放错地方了。