Rails 验证后如何清除表单

Posted

技术标签:

【中文标题】Rails 验证后如何清除表单【英文标题】:How to Clear Form AFTER Rails Validation 【发布时间】:2015-08-03 23:26:11 【问题描述】:

我有一个表格,我想在提交时清除它。我遇到的麻烦是我的表单字段之一具有“存在:真实”验证。此验证在表单清除后执行,因此会产生错误并阻止保存表单数据。只有在验证发生后,我应该如何清除表单?

$(document).on('ready', function()

	$('.bagelType').on('click', function()
		$('#order_item_bagel_type').val($(this).data("bagel"));
	)

	$('#new_order_item').on('submit', function()
		$('#order_item_bagel_type').val("");
	);

);

<%= form_for order_item, remote: true do |f| %>
	<%= f.hidden_field :bagel_type, value:"" %>
	<%= f.submit "Submit" %>
<% end %>

【问题讨论】:

表单提交后。您希望字段为空。是吗? 【参考方案1】:
$('input[value="sbumit"]').click(function() 
    $(this).siblings('input[type="text"]').removeAttr('required');
);

只要单击提交按钮,此js 代码就会运行,并且表单关联文本字段的必需验证将被删除。

希望对您有所帮助!

【讨论】:

【参考方案2】:

你可以创建一个create.js erb文件

<% if @order_item.errors.any? %>
  do some stuff here
<%else%>
   write hide functionality here 
<%end%>

【讨论】:

【参考方案3】:
$("#form_id")[0].reset()

它将重置您的完整表单。

【讨论】:

【参考方案4】:
$('#myForm').trigger("reset");

【讨论】:

以上是关于Rails 验证后如何清除表单的主要内容,如果未能解决你的问题,请参考以下文章

使用 laravel 框架提交数据后清除表单输入

如何在rails中禁用嵌套表单的服务器端验证

Codeigniter 表单验证 - 成功后如何取消设置表单值?

提交成功后如何清除表单?

在 Rails 6 中使用 activestorage 时,如何在重新显示表单时保留文件?

element-ui的表单验证如何清除校验提示语