如果一个表单需要设置一个“暂存”按钮和一个“提交”按钮。 我的理解是,无论点击哪个按钮,实质都已经 save 到数据库里了。我只是需要用一列“status"去标识,如果暂存,status 为 0, 否则 status 为 1.(由于以后可能还有其它状态,没有用 boolean,而是用 integer) 可是在表单中怎么实现呢?
<%= f.input_field :status, as: :hidden, value: 1, id:'submit_status' %>
<%= f.submit '暂存', class: 'btn btn_lg btn-success', id:'staging_btn' %>
<%= f.submit '提交', class: 'btn btn_lg btn-info', id:'submit_btn' %>
我现在想到的是,设置一个 hidden 的 field,点击暂存的时候,用 js 把这个对应:status 的 value 设置为 0,否则就是 1. 但这个好像又不对,点击 submit 按钮它就直接提交了吧?难道会先等 js 执行完? 我的思路对不对?你们都怎么写的? 你们的暂存按钮都怎么实现的?
HTML 中隐藏一个为:status 的 input,然后用 js,在 submit 按钮跳转之前,先根据按钮的值去设置:status 的值。 View 中代码:
<%= link_to '取消', 'javascript:history.back()', class: 'btn btn_lg btn-default pull-left' %>
<%= f.input_field :status, as: :hidden %>
<%= f.submit '暂存', class: 'btn btn_lg btn-success', name:'staging', id:'staging_btn',
onclick:"" %>
<%= f.submit '提交', class: 'btn btn_lg btn-info', name:'submit', id:'submit_btn' %>
JS 中代码:
$('#staging_btn').click ->
$('#personal_weekly_status').val(1)
return
$('#submit_btn').click ->
$('#personal_weekly_status').val(2)
return