2011-07-17 40 views
12

Tôi có thể có nút ở bên cạnh biểu mẫu không, nhưng không có type=submit?button_to mà không cần gửi

Tôi đang làm điều gì đó đặc biệt. Tôi có một biểu mẫu,

<%= form_for(@user) do |f| %> 

và biểu mẫu này sẽ được hiển thị dựa trên giá trị trong phiên.

Ở bên cạnh biểu mẫu, tôi có f.submit rồi và tôi muốn có nút khác, nút hủy, để gọi phương thức từ bộ điều khiển để thay đổi giá trị phiên nếu người dùng muốn hủy đầu vào.

Nhưng nếu tôi sử dụng button_to, loại nút sẽ là "gửi", khi tôi nhấp vào nút, nó sẽ gửi toàn bộ biểu mẫu. Nếu một số giá trị không hợp lệ, nó sẽ khiếu nại. Nó không hoạt động như nút "hủy bỏ" mà tôi mong đợi.

Tôi có thể có nút không gửi biểu mẫu không?

Tôi cố gắng để sử dụng submit_tag, nhưng Buttom dosn`t làm việc cho tôi ...

<%= submit_tag 'Cancel Edit', :type => 'button', :controller => 'my_account', :action=>'cancel_edit' %> 

Trả lời

12

Các button_to helper thực sự tạo ra một hình thức hoàn toàn:

Tạo một hình thức có chứa một nút duy nhất gửi đến URL được tạo bởi tập hợp options.

Vì vậy, đó chắc chắn không phải là điều bạn muốn. Tôi nghĩ bạn chỉ muốn tạo một phần tử đơn giản <input type="button"> trong HTML của mình. Tuy nhiên, không có button_tag trong FormTagHelper nhưng có một submit_tag mà bạn có thể trao một lựa chọn :type tới và điều đó sẽ:

Bất kỳ quan trọng khác tạo ra tùy chọn HTML chuẩn cho thẻ.

Vì vậy, cố gắng này:

submit_tag 'Pancakes', :type => 'button' 

nơi "Bánh rán" sẽ là nhãn thực sự của bạn.

+0

Thx cho trả lời ... hãy để tôi cung cấp cho nó một thử. ... – jojo

+0

Nhưng làm thế nào tôi có thể hành động invoeke từ thẻ gửi ??? tôi có cần sử dụng javascript không ??? – jojo

+0

@shrimpy: Ghim một số JavaScript. –

20

Hãy thử như sau:

<%= button_tag "Cancel", :type => 'button', :class => "subBtn", :onclick => "location.href = '#{list_admin_users_admin_index_path()}'" %> 
+1

làm việc cho tôi, thnx. –

0

Bạn có thể sử dụng helper tương tự như f.submit:

<%= f.button 'Save' %>

Documentation

Các vấn đề liên quan