在我的 rails 3.1 应用程序中,我有一个需要多次使用的表单。我有一个项目组列表和下面的新表格。创建后,我在所有现有组之后渲染新组并执行 $('#new_project_group')[0].reset()。它使表单为空,但我有验证问题。
我使用客户端验证 gem,第二次验证不起作用。我认为这是因为第一次字段已填写,第二次不再验证。
有人知道如何使用验证重置表单吗?
UPD 这是另一个模型的代码,但有同样的问题。在这里,我用表单渲染对话框,添加对话框后隐藏。下次我只是打开带有重置表单的相同对话框。
控制器:
class Accounts::FeedbackMessagesController < Accounts::ApplicationController
defaults :resource_class => FeedbackMessage
load_resource :feedback_message
respond_to :js
def create
@feedback_message.user_id = current_user.id
@feedback_message.user_email = current_user.email
@feedback_message.user_name = current_user.full_name
create!
end
end
形式:
<%= semantic_form_for resource, :remote => true, :validate => true do |f| %>
<%= f.inputs do %>
<%= f.input :description, :input_html => {:id => 'test'} %>
<br/>
<div class="links">
<%=link_to_add_association t('asset.add'), f, :assets %>
</div>
<%end%>
<%= f.buttons do %>
<%= f.commit_button :button_html => { :disable_with => "#{t('share.wait')}" } %>
<% end %>
<% end %>
new.js.coffee:
if $('#feedback_dialog').html() == ""
$('#feedback_dialog').html('<%= escape_javascript(render 'form') %>').dialog(
open: ->
$('form[data-validate]').validate()
close: ->
$("#feeadback_dialog_link").click ->
$('#feedback_dialog').dialog "open"
return false
)
else
$('#feedback_dialog').dialog "open"
create.js.coffee:
$('#feedback_dialog').dialog "close"
$('#new_feedback_message')[0].reset()