随笔-167  评论-65  文章-0  trackbacks-0

更详细的介绍,请查看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>是否收费:  &nbsp;&nbsp; <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的规范写法!

待续...........



write by feng
posted on 2009-04-15 18:11 fl1429 阅读(3106) 评论(1)  编辑  收藏 所属分类: Rails

评论:
# re: Rails 表单小结 2011-05-09 20:34 | 调皮丫头
我想请教一下复选框那块的问题~~能加一下您的qq吗?我的是137251026  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
已访问数:
free counters