使用 JQuery 清除特定表单字段时遇到问题

Posted

技术标签:

【中文标题】使用 JQuery 清除特定表单字段时遇到问题【英文标题】:Trouble clearing a specific form field with JQuery 【发布时间】:2018-06-11 17:00:57 【问题描述】:

我在。我可以清除整个表格,但这不是我想要的。

这里是相关的 html

<article class="panel panel-default" id="<%= dom_id(list) %>">
  <div class="panel-heading"><%= list.name %><%= link_to %(<span class="glyphicon glyphicon-pencil"></span>).html_safe, [:edit, list], remote: true %></div>

<%= form_tag(destroy_multiple_list_items_path(list_id: list.id),method: :delete,remote: true) do %>
  <ul class="list-group sortable" data-update-url="<%= sort_list_path(list) %>">
    <%= render list.items %>
  </ul>

  <div class="panel-footer">
    <%= submit_tag("Delete Selected",  :class => "btn btn-danger") %>
  </div>
  <% end %>


  <div class="panel-footer">
    <%= form_for [list, Item.new], remote: true, html:  class: "form-inline", id: "#dom_id(list)_new_item_form"  do |f| %>
      <div class="form-group">
        <%= f.text_field :content, class: "form-control", id:itemName%>
      </div>
      <%= f.submit "Add Item", name: nil, class: "btn btn-defaultbtn"%>
    <% end %>

  </div>


</article>

我正在尝试清除最后一个 id 为 itemName 的文本字段。

我在渲染项目的创建视图时清除表单,该视图仅在项目成功提交时才会呈现。这是JQuery

  $("#<%= dom_id(@list) %> ul").append("<%=j render 'items/item', item: @item %>");
$('#itemName').trigger("reset");

现在我可以使用清除表单了

$("form").trigger("reset");

但这会清除整个页面上的所有表单字段,包括复选框。该页面包含多个 itemName 输入,我知道此尝试的方法将清除所有这些输入,而不是已提交的特定输入,因此我愿意接受有关仅清除已提交的单个特定 itemName 的任何建议,但如果我可以至少清除那些字段,而不是复选框,那会很棒。

感谢您的帮助。

【问题讨论】:

如果您与呈现的HTML 共享此问题而不是连接服务器代码,则只是一个旁注,更多范围的用户可能能够为您提供帮助,因为实际问题与 javascript 相关跨度> 您不能有重复的IDs。应该只有一个#itemName。 (# 表示 itemNameid 而不是 class)。请粘贴输出的 HTML 代码。 【参考方案1】:

您可以使用 querySelectorAll DOM 方法访问表单的每个元素:

document.querySelectorAll('form input').forEach(function(element) 
  element.reset();
);

不知道如何用 jquery 执行它

【讨论】:

【参考方案2】:

所以我能够通过获取 .form-inline 类来解决问题。

$(".form-inline").trigger("reset");

这只会重置文本框,而不是复选框。感谢所有帮助。

【讨论】:

以上是关于使用 JQuery 清除特定表单字段时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

jQuery验证插件清除IE中的文件输入值

Web表单提交文本字段不明确[重复]

在提交失败时保持 jQuery - Rails

选择 jQuery UI 自动完成后清除表单字段

jquery 在单击单选按钮时选择并激活特定类的所有项目

单击提交清除文件字段而不是提交表单(IE9)