更詳細的介紹,請查看rails API
表單:
ajax表單:
<% form_remote_tag :url => { :action => 'register' } do %>
.................
<% end %>
或者
<%= form_remote_tag(:url => { :action => 'forgot' }) %>
.........................
<%= form_tag %>
傳統表單方式:
<% form_tag({:controller=>"*",:action=>"*"},:name=>"searchform",:method=>"post",:multipart=>"true"}) do %>
<% end %>
文本框:
(1),用戶名:<%= text_field 'user','name' , :size=>20 %> 等同于 <%= text_field :user,:name, :size=>20 %>
controller中取值:params[:user][:name]
(2)組名:<%= text_field_tag :name,@group_name %>
controller中取值 params[:name],@group_name是默認值,可以從controller中傳值到這里(一般是把form放到partial中)
密碼框:
密碼:<%= password_field 'user','password' ,:size=>20 %>
controller中取值 params[:user][:password]
文本區:
組備注: <%= text_area_tag :comment,@group_comment %>
controller中取值:params[:comment],默認值@group_comment
單選按鈕:
是否收費:<%= radio_button_tag 'fee','1', false %> 是 <%= radio_button_tag 'fee','0',false %> 否
controller中取值: params[:fee]
下拉列表:
(1),狀態: <%= select_tag :trend, options_for_select([["正常", "1"],
["禁用", "0"]],
[@status, @status_value]) %>
controller中取值 params[:trend],@status是顯示的值,@status_value是傳出去的值
(2),
<%= select_tag 'charge', options_from_collection_for_select(@charge,'price','level',1) %>
@charge是從controller中傳過來的值集合
發送表單:
<%= submit_tag '添加',{ :name=>'newgroup' } %>
后面的{}內是name屬性值 例如可以再controller中取值 params[:newgroup] 得出的值是 : 添加
注意點:
1,rhtml中可以使用原始方式 不信你查看下頁面源碼就知道了,例如:
(1),<label><input type="submit" name="newgroup" value="添加" /></label>
這個和上面的發送表單效果一樣
(2),但是使用這種方式有時在不同的瀏覽器里會有bug,例如:
<label>是否收費: <input type="radio" name="fee" value = "1">是
<input type="radio" name="fee" value = "0">否<br>
</label>
在ie,opera,chrome都可以正常使用,但是在FF中就不可以使用,所以建議還是使用rails自帶的方式書寫
2,一般rails自帶的都有兩種書寫方式,后期出現了*_tag的方法,就如上面的 文本框 但是建議用 *_tag的方式表達
3,'user' 和 :user 的都是參數的表示的方式,但是建議使用后者,這樣更符合rails的規范寫法!
待續...........
posted on 2009-04-15 18:11
fl1429 閱讀(3113)
評論(1) 編輯 收藏 所屬分類:
Rails