【问题标题】:Submit Rails from on change of selected value in dropdown form在下拉表单中更改所选值时提交 Rails
【发布时间】:2013-04-13 16:48:15
【问题描述】:

我有一个 Rails 应用程序,在表格中列出了潜在客户。在其中一个列中,我在下拉菜单中显示潜在客户的状态。我想在更改下拉列表中选择的值时启用更改潜在客户的此状态。

这是我尝试过的:

在表格单元格中显示表单的代码:

      <% @leads.each do |lead| %>
  <tr>
    <td><%= lead.id %></td>
<td><%= form_for(lead,:url => 'update_lead_status') do |f| %>
              <div class="field">
                <%= f.select :status, ["to_call","called","confirmed","lite"], :selected => lead.status, onchange: "this.form.submit();" %>
              </div>
            <% end %>
        </td>

leads 控制器中我的 update_lead_status 方法:

#PUT
  def update_lead_status
    @lead = Lead.find(params[:id])
    respond_to do |format|
      # format.js
      if @lead.update_attributes(params[:lead])
        format.html { redirect_to leads_url, notice: 'Lead was successfully updated.' }
        format.json { head :no_content }
      else
        format.html { render action: "edit" }
        format.json { render json: @lead.errors, status: :unprocessable_entity }
      end
    end
  end

我也希望提交是 Ajax 风格而不刷新。

【问题讨论】:

    标签: javascript ruby-on-rails ajax


    【解决方案1】:

    设置表单id,然后提交表单

    <%= form_for(lead,:url => 'update_lead_status',:html=>{:id=>'lead_form'}) do |f| %>
    
     <%= f.select :status, ["to_call","called","confirmed","lite"], :selected => lead.status, onchange: "$('#lead_form').submit();" %>
    <% end %>
    

    【讨论】:

    • 或者需要在onchange前加空{}
    猜你喜欢
    • 2016-03-31
    • 2011-10-21
    • 2021-08-30
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多