我有一个带有一些验证的表单,如果它通过,它会添加一个处理类,并附加一些html。
if (valid != '') {
$('form #form_ajax').removeClass().addClass('error').html('<p>Please correct the errors above.</p>' + valid).fadeIn('fast');
} else {
$('form #form_ajax').removeClass().addClass('processing').html('<p>Sending…</p>').fadeIn('fast');
var formData = $('form').serialize();
submitForm(formData);
}
但是我也有AJAX发送表单,当它添加一个成功类时,我需要之前提到的html消失。
$('form #form_ajax').removeClass().addClass((data.error === true) ? "error" : "success")
if ($('form #form_ajax').hasClass('success')) { setTimeout("$('form #form_ajax').fadeOut('slow')", 2000);
}
我已经尝试将.remove('<p>')
放入几个没有运气的地方。我是以正确的方式来做这件事吗?
谢谢
答案 0 :(得分:0)
你很亲密。尝试在AJAX块的顶部添加:
$('#form_ajax p').remove();
答案 1 :(得分:0)
ajax发送后创建的<p>
.remove立刻开始
ajax发送后的数量为ms
所以你试图删除一个尚不存在的对象
最好的方法是使用完整的ajax函数
var request = $.ajax(
url : "example.php"
,type: "POST" )
request.done(function() { alert("success"); });
request.fail(function() { alert("error"); });
request.always(function() { alert("complete"); });
您可以删除.always()函数中的<p>
一切都结束后它会发射
答案 2 :(得分:0)
将要删除的p
标记包装在div中,然后用类名区分
if (valid != '') {
$('form #form_ajax').removeClass().addClass('error').html('<div id="wrapDiv"><p>Please correct the errors above.</p>' + valid+"</div>").fadeIn('fast');
} else {
$('form #form_ajax').removeClass().addClass('processing').html('<div id="wrapDiv"><p>Sending…</p></div>').fadeIn('fast');
var formData = $('form').serialize();
submitForm(formData);
}
只需使用remove
删除要删除p
标记
$(".wrapDiv").remove();