【问题标题】:reset value of multiple (but not all) form fields with jQuery in one line在一行中使用 jQuery 重置多个(但不是全部)表单字段的值
【发布时间】:2012-10-25 14:27:15
【问题描述】:

是否可以使用 jQuery 在一行或一击中重置多个表单字段。注意:我不想重置所有表单字段,只重置指定的白名单(如下):

// reset some form fields                       
$('#address11').val('');
$('#address21').val('');
$('#town1').val('');
$('#county1').val('');
$('#postcode1').val('');

【问题讨论】:

  • 不确定您的问题为何被否决...+1

标签: javascript jquery html forms jquery-1.7


【解决方案1】:

最好使用一个类,这样您就不必维护一长串 id。

HTML

<input type="text" class="resetThis" id="address11" />
<input type="text" class="resetThis" id="address21" />

JavaScript

$(".resetThis").val("");

【讨论】:

    【解决方案2】:

    jQuery(和 CSS)选择器字符串可以包含多个选择器,使用逗号作为子选择器的分隔符:

    $('#address11, #address21, #town1, #county1, #postcode1').val('');
    

    我认为这比使用类更快(ID 查找应该在基本恒定的时间内执行,而类查找必须访问每个 DOM 节点),但是如果您要更改要重置的元素,则可能不太易于维护。

    【讨论】:

    • .classfaster :)
    • 有趣,谢谢。我假设解析选择器字符串需要更长的时间。
    【解决方案3】:

    如果你有很多字段,我会用一个类标记你想忽略的字段以最小化代码:

    $('#myForm input:not(.ignore)').val('');
    

    【讨论】:

      【解决方案4】:

      您可以使用$('#Form_name select:not(.fixed)').val('');

      【讨论】:

      • 这和@Emissary 的回答一样
      猜你喜欢
      • 1970-01-01
      • 2010-10-15
      • 2016-03-08
      • 2015-11-02
      • 1970-01-01
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多