如何在ASP.NET回发(PostBack)后重置Web表单内容?
商品评论表单重置方案确认与优化
你的实现思路没问题,但存在语法错误,同时可以进一步简化逻辑:
现有代码的问题
- 选择器
input[type"text"]缺少等号,正确写法应为input[type="text"],否则无法匹配文本输入框 - 手动遍历元素重置的方式可以简化,利用原生表单的重置功能更高效可靠
优化后的代码
如果你的表单有可被jQuery选中的标识(比如添加id="commentForm"),可以直接调用原生重置方法:
Sad.Ajax.Post({ "handler": "Comment", "data": formItems, "ok": function (result) { if (!result.Ok) { Sad.Modal.Alerts.Error(result.Msg); } else { Sad.Modal.Alerts.Success(result.Msg); // 调用原生reset方法,将表单元素恢复到页面加载时的初始状态 $("#commentForm")[0].reset(); // 若下拉框需要固定默认值为"0"而非初始值,可单独补充: // $("#commentForm select").val("0"); } } });
如果无法直接选中表单元素,也可以修正原有遍历逻辑的语法错误后继续使用:
container.find('input[type="text"], select, textarea').each(function () { var o = $(this); o.is("select") ? o.val("0") : o.val(""); });
补充说明
- 原生
reset()方法会自动将所有表单元素恢复到页面初始化时的状态,无需手动逐个处理,逻辑更简洁 - 若部分元素需要特殊重置规则(如下拉框固定默认值),可以在调用
reset()后单独调整对应元素的值
内容的提问来源于stack exchange,提问作者Beren
相关产品推荐
相关产品推荐

