2017-02-17 32 views
0

我想在Rails中使用塊作爲提交按鈕。正常的用法就是這樣。有沒有可能Rails的幫助器獲取塊作爲提交按鈕?

<%= form_tag("sample_path", method: "post") do %> 
    <%= hidden_field_tag(:post_id, "5") %> 
    <%= submit_tag("Search") %> 
<% end %> 

但我想要做的是以下。

<%= form_tag("sample_path", method: "post") do %> 
    <%= hidden_field_tag(:post_id, "5") %> 
    <div> 
    <div>foo</div> 
    <div>bar</div> 
    </div> 
<% end %> 

我想使用塊作爲提交按鈕。但Rails不認爲這是提交按鈕。

有誰知道如何實現這一點?謝謝。

+0

我不明白你的問題。什麼是sampleBlock? – fanta

+0

我編輯了你提到的部分。我的意思是純文本塊。我爲我的誤會道歉。 –

回答

2

你有兩個選擇:

1)您可以使用button_tag爲:

<%= button_tag(type: 'submit') do %> 
    <div>foo</div> 
    <div>bar</div> 
<% end %> 

2)添加onclick JS事件:

<div onclick="$('#form-id').submit();"> 
    <div>foo</div> 
    <div>bar</div> 
</div> 

3)綁定事件處理程序到「click」JavaScript事件:

$('#your-div').click(function() { 
    $('#form-id').submit(); 
}); 
0

#submit_tag只是呈現一個常規的HTML輸入標記。

submit_tag "Search" 
# => <input name="commit" type="submit" value="Search" /> 

僅使用HTML您可以使用<button type='submit'><input type='submit'>標籤提交表單。如果要使用<div>提交表單,則可以將onclick處理程序放在要用來提交表單的元素上。

<%= form_tag("sample_path", method: "post") do %> 
    <%= hidden_field_tag(:post_id, "5") %> 
    <div onclick="$('#your_form_id_here')[0].submit();> 
    <div>foo</div> 
    <div>bar</div> 
    </div> 
<% end %> 

但我建議設置onclick事件處理程序在.js文件中爲特定視圖。它使代碼更有條理。