Javascript 如何使用jQuery重置表单?
我有一个联系人表单,我正在尝试在提交后自动重置。 我在这里看到过一些关于重新设置或清理表单的帖子 我已经试过好几次了,但我不知道该在哪里发布代码 这就是我的代码:Javascript 如何使用jQuery重置表单?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个联系人表单,我正在尝试在提交后自动重置。 我在这里看到过一些关于重新设置或清理表单的帖子 我已经试过好几次了,但我不知道该在哪里发布代码 这就是我的代码: $.ajax({ type: 'POST', url: 'sendmessage.php', data: $("#contact").serialize(), success: function(data) { if(data == "true") { $("#c
$.ajax({
type: 'POST',
url: 'sendmessage.php',
data: $("#contact").serialize(),
success: function(data) {
if(data == "true") {
$("#contact").fadeOut("fast", function(){
$(this).before("<p> <strong>Success! Your request has been sent. We will respond to it as soon as possible. </strong></p>");
setTimeout("$.fancybox.close()", 3000);
但是我尝试放置代码的所有位置都不起作用…您可以获取该表单中的所有子“输入”标记和“文本区域”,并清除值
$('#contact').find('input[type=text], textarea').attr("value", "")
我希望这就是您提出的问题,我制作了一个小JSFIDLE(远不是智能的或优化的),它可能对您有用 在我的例子中,使用
$('#contact')[0]重置表单代码>就像你提到的,但是你可以看到我在哪里使用它,并在它之后构建你的解决方案
HTML
提交
再次展示形式
JS/jQuery
$(“#btnsupmit”)。在(“单击”,函数(){
$(“#触点”)。淡出(“快速”,功能(){
$(“#联系人”)[0]。重置();
$('#btnSubmit').hide();
$(此)。之前(“成功!您的请求已发送。我们将尽快响应。”;
setTimeout(函数(){
$('#msg').fadeOut();
$(“#btnShowForm”).fadeIn();
}, 3000);
});
});
$(“#btnShowForm”)。在(“单击”,函数(){
$(“#联系人”).fadeIn();
$(“#btnSubmit”).fadeIn();
$(this.hide();
});
JSFIDLE
表格中是否有#contact
?您的重置代码应该可以工作。如果隐藏表单本身,则可能是fadeOut
导致了问题,但我不记得fadeOut是否确实删除了元素“它不工作”是什么意思?JavaScript控制台中是否有错误消息?什么是reset
?清空任何值的所有输入,或者在用户编辑它们之前重置为原始表单?如果是最后一个,一个像
这样的简单按钮就可以了。@helion3不,它不会删除元素。它只是得到一个显示:最终没有。来自jQuery文档:“.fadeOut()方法设置匹配元素的不透明度的动画。一旦不透明度达到0,显示样式属性设置为无,因此元素不再影响页面的布局。”尽管此代码段有点不完整,但此方法仍然有效,尽管使用此代码段的任何人都需要知道,如果表单字段最初为非空,则此方法的效果不同于reset
。这正是他试图实现的目标:
$('#contact').find('input[type=text], textarea').attr("value", "")
<form id="contact" action="">
<input type="text" name="foo" />
<input type="text" name="bar" />
</form>
<button id="btnSubmit">Submit</button>
<button id="btnShowForm" style='display:none'>Show form again</button>
$("#btnSubmit").on("click", function () {
$("#contact").fadeOut("fast", function () {
$("#contact")[0].reset();
$('#btnSubmit').hide();
$(this).before("<p id='msg'> <strong>Success! Your request has been sent. We will respond to it as soon as possible. </strong></p>");
setTimeout(function () {
$('#msg').fadeOut();
$("#btnShowForm").fadeIn();
}, 3000);
});
});
$("#btnShowForm").on("click", function () {
$("#contact").fadeIn();
$("#btnSubmit").fadeIn();
$(this).hide();
});