提交表格后清除表格

可能重复:
使用jQuery重置多阶段表单

提交表单后,另一个页面的响应将打印到#GameStorySys。 但输入表格的价值仍然存在。 表格提交后,表格值是否可能消失(但表格仍应保留)?

$("[name='GameStoryForm']").click(function() { $.ajax({ type: "POST", data: $("#GameStoryForm").serialize(), url: "content/commentary/index.cs.asp?Process=EditLiveCommentaryStory&CommentaryID=", success: function(output) { $('#GameStorySys').html(output); }, error: function(output) { $('#GameStorySys').html(output); } }); }); 

您可以手动清除它,例如:

 $("[name='GameStoryForm']").click(function() { $.ajax({ type: "POST", data: $("#GameStoryForm").serialize(), url: "content/commentary/index.cs.asp?Process=EditLiveCommentaryStory&CommentaryID=<%=Request.QueryString("CommentaryID")%>", success: function(output) { $('#GameStorySys').html(output); $("#GameStoryForm").get(0).reset(); //or manually: // $("#GameStoryForm :input").not(':button, :submit, :reset, :hidden') // .val('').removeAttr('checked selected'); }, error: function(output) { $('#GameStorySys').html(output); } }); }); 

我会用javascript做到这一点:

  

如果在AJAX查询的响应函数中执行重置,则在请求返回之前不会进行。 如果你在onsubmit()事件处理程序中重置表单(如这里所建议的那样),那么它将不会被重置(因为你在click()处理程序中发送了AJAX请求,而不是submit()处理程序)。

你需要做的是在发出AJAX请求后执行重置 – 也就是说,在调用$ .ajax()之后执行重置 – 但是在请求返回时调用的回调函数中没有:

 $("[name='GameStoryForm']").click(function() { $.ajax({ type: "POST", data: $("#GameStoryForm").serialize(), url: "content/commentary/index.cs.asp?Process=EditLiveCommentaryStory&CommentaryID=<%=Request.QueryString("CommentaryID")%>", success: function(output) { $('#GameStorySys').html(output); }, error: function(output) { $('#GameStorySys').html(output); } }); $("#GameStoryForm").get(0).reset(); });