【发布时间】:2013-01-11 02:44:34
【问题描述】:
我想在保存前执行验证,确定用户是否填写了特定字段、下方的付款金额字段并在提交表单之前选择了状态 =“已关闭”。如果他只做一个没有另一个,那么表单不应该保存
编辑页面
<%= simple_form_for @invoice, :html => { :class => 'form-horizontal' } do |f| %>
<%= render "shared/error_messages", :target => @invoice %>
<%= f.association :customer, disabled: @invoice.persisted? %>
<%= f.input :due_date, as: :string, input_html: { class: "datepicker" }, disabled: @invoice.persisted? %>
<%= f.input :invoice_date, as: :string, input_html: { class: "datepicker" }, disabled: @invoice.persisted? %>
<%= f.input :payment_method, as: :select, :collection => [['Cash','Cash'],['Cheque','Cheque'],['In-House transfer','In-House transfer'],['Account Ledger','Account ledger']], :selected => ['Cash','Cash'] %>
<%= f.input :reference_no, :label => 'Payment Reference No', as: :string %>
<%= f.input :amount, as: :string %>
<%= f.input :payment_date, as: :string, input_html: {class: "datepicker"} %>
<%= f.input :status, as: :select, collection: Invoice::VALID_STATUS %>
VALID_STATUS = [ 'Draft', 'Open', 'Closed', 'Void' ] in Invoice.rb
我希望如果用户将状态更改为已关闭,他应该在表单中输入金额。用户不应该能够在不输入金额的情况下将状态更改为已关闭
【问题讨论】:
-
您想在表单发布后在服务器端执行此操作,还是在发布表单之前在客户端执行此操作? (真的,正确的答案是两者都有,但你的问题是什么?)
-
jQuery 可以还是必须是原始的 javascript?您可以控制您使用的 javascript 库/插件吗?
标签: javascript ruby-on-rails ruby-on-rails-3 forms validation