【问题标题】:Clear form using jQuery使用 jQuery 清除表单
【发布时间】:2016-12-29 23:09:54
【问题描述】:

我正在使用下面的代码来重置我在特定表单上的所有值。

        $('#' + frm).closest('form').find("input[type=text], textarea").val("");
        $('#' + frm).closest('form').find("input[type=password]").val("");
        $('#' + frm).find('input[type=checkbox]:checked').removeAttr('checked');
        $('#' + frm + ' input[type="radio"]').prop('checked', false);

它适用于 95% 的情况,但我想将所有“选择”框重置为选定的索引 0。如果有更好或更有效的方法来完成整个过程来重置所有元素类型,我我愿意接受最好的建议。我需要重置表单,因为同一个人会一遍又一遍地使用相同的表单来添加工作经历。

感谢您的意见

【问题讨论】:

  • document.querySelector("form").reset()?

标签: javascript jquery


【解决方案1】:

你可以使用Form reset() Method

reset() 方法重置表单中所有元素的值(同 就像单击“重置”按钮一样)。

 $('#' + frm).closest('form')[0].reset();

【讨论】:

  • 当我创建选择值以使其返回 0 时,我必须做一些特别的事情吗?重置代码对其他所有内容都有效,但对所选值无效
  • 我有 但它永远不会重置为默认值或索引 0
  • 要在重置后保留所选值,您必须使用 JS 代码处理
【解决方案2】:

您可以实现自己的重置表单方法:

jQuery.fn.reset = function(fn) {
   return fn ? this.bind("reset", fn) : this.trigger("reset");
 };

这将允许您将代码附加到重置函数:

jQuery("#form").reset(function(){ 
   /* some other code */ 
 });

您可以(并且仍然推荐这样做)使用类型为 reset 的简单 HTML 输入 - 即使在禁用 JavaScript 的浏览器上也会这样做。

【讨论】:

    猜你喜欢
    • 2011-09-15
    • 2012-01-31
    • 1970-01-01
    • 2018-03-28
    • 2010-12-24
    • 2011-12-09
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多