社区应用 最新帖子 精华区 社区服务 会员列表 统计排行 银行
  • 5788阅读
  • 4回复
xinhao 离线

级别: 新手上路


显示用户信息 

倒序阅读   只看楼主      楼主   发表于: 2008-08-12
更多操作

如何使用checkbox

给check box添加名字和付值:
<%= check_box(\'item_\'+i.to_s, \'checked\', {}, item.name, \'\') %>
可以使用action来获取数值:
checked = @params[\'item_\'+i.to_s][\'checked\']

我们可以使用任何值付给check box. 可以是flag, id 或者的值。下面的例子使用virtual list.
Model:

item.rb
class Item
def initialize(name)
setName(name)
setChecked(\'\') # set to empty for an unchecked Checkbox
#setChecked(name) # set to not empty for a checked Checkbox
end
def setChecked(checked)
@checked = checked
end
def checked
@checked
end
def setName(name)
@name = name
end
def name
@name
end
end

View:

list.rhtml

Item#list


\"deleteSelection\") %>\' method=\'POST\'>


<% i = 0
for item in @itemlist do
i = i + 1 %>




<% end %>
SelectionName
<%= check_box(\'item_\'+i.to_s, \'checked\', {}, item.name, \'\') %> <%= item.name %>






Controller
item_controller.rb

#require \'item\'
class ItemController < ApplicationController
def initialize
super
@itemlist = [Item.new(\'item1\'), Item.new(\'item2\'), Item.new(\'item3\'), Item.new(\'item4\'), Item.new(\'item5\')]
end
def list
@itemlist
end
def deleteSelection
i = 0
items = @itemlist.clone
items.each { |item|
i = i + 1
if (@params[\'item_\'+i.to_s] != nil) then
checked = @params[\'item_\'+i.to_s][\'checked\']
if (checked != nil && checked.length > 0) then
if (item.name == checked) then
@itemlist.delete(item)
end
end
end
}
render_action \'list\'
end
end

thanks to http://wiki.rubyonrails.org/rails/pages/HowToUseCheckBoxes
drive2me 离线

级别: 总版主


显示用户信息 

只看该作者      沙发   发表于: 2008-08-13
噢噢,很实用的例子。

谢谢。

xinhao,你忙完了?又看到你回来了,呵呵。
[b][color=blue]Flying Piggy...!
天地人合一![/b][/color]
xinhao 离线

级别: 新手上路


显示用户信息 

只看该作者      板凳   发表于: 2008-08-18
一边忙,一边翻译。这就是生活呀
cclong 离线

级别: 中文化团队


显示用户信息 

只看该作者      地板   发表于: 2008-08-19
引用
原帖由 xinhao 于 2008-8-18 23:21 发表
一边忙,一边翻译。这就是生活呀

生活就是这么无奈。
drive2me 离线

级别: 总版主


显示用户信息 

只看该作者      4楼  发表于: 2008-08-21
也很充实的呀!
[b][color=blue]Flying Piggy...!
天地人合一![/b][/color]
描述
快速回复

批量上传需要先选择文件,再选择上传
认证码:

 回复后跳转到最后一页