javascript函数启用带有复选框的字段,但是该字段的值不会在提交时传递给控制器。我该如何解决这个问题?
<%= f.label :texture_date, "Texture" %>
<%= f.date_select( :texture_date,
{ :order => [:month, :day], disabled: true },
{ class: 'texture_date' }) %>
<%= check_box_tag :texture_date_enable, '' %>
$(document).on('change','#texture_date_enable', function(){
$("select.texture_date").prop('disabled', !this.checked);
});
更新:参数实际上是转到控制器,但它没有更新。它还发送:texture_date_enable作为param,这是不需要的。
以下是日志中params的样子:
"texture_date(2i)"=>"2", "texture_date(3i)"=>"2"
(2i)和(3i)会导致问题吗?
更新:
完全参数。请注意&#34;在商店收到的日期&#34;正在传递,但在页面加载时启用了此字段。所有其他日期字段都是可选的,它们不会更新。
Parameters: {"utf8"=>"✓", "authenticity_token"=>"rg8yJ4hKAOeUEKytzDq3mc5SwPdnNQitFOlK6VrfU2p49JmX9Ipu0M+dT2GWO+LttS+BMy+5nJ5WXGBo63yh9A==", "ticket"=>{"date_received_in_shop(2i)"=>"2", "date_received_in_shop(3i)"=>"2", "date_received_in_shop(1i)"=>"2015", "job_number"=>"", "customer"=>"", "address1"=>"", "city"=>"", "manufacturing_location"=>"D", "mapsco_page"=>"", "builder_contact"=>"", "builder_contact_phone"=>"", "salesman"=>"", "draftsman"=>"", "door_style"=>"", "door_manufacturer"=>"D", "insulation_and_or_inspection"=>"None", "texture_date(2i)"=>"2", "texture_date(3i)"=>"2", "notes"=>"", "block_up_for_floor"=>"0"}, "texture_date_enable"=>"", "commit"=>"Update Ticket", "id"=>"20"}
答案 0 :(得分:0)
问题是隐藏/禁用的年份字段。通过将年份字段添加到其他已启用的输入,表单按预期工作。