Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
dd7afdb2
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
dd7afdb2
编写于
5月 03, 2011
作者:
J
José Valim
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #378 from danielvlopes/master.
Select_tag should have the same API of select from form_builder
上级
f9849070
c5d54be7
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
24 addition
and
8 deletion
+24
-8
actionpack/lib/action_view/helpers/form_tag_helper.rb
actionpack/lib/action_view/helpers/form_tag_helper.rb
+16
-6
actionpack/test/template/form_tag_helper_test.rb
actionpack/test/template/form_tag_helper_test.rb
+8
-2
未找到文件。
actionpack/lib/action_view/helpers/form_tag_helper.rb
浏览文件 @
dd7afdb2
...
...
@@ -74,6 +74,8 @@ def form_tag(url_for_options = {}, options = {}, *parameters_for_url, &block)
# ==== Options
# * <tt>:multiple</tt> - If set to true the selection will allow multiple choices.
# * <tt>:disabled</tt> - If set to true, the user will not be able to use this input.
# * <tt>:include_blank</tt> - If set to true, an empty option will be create
# * <tt>:prompt</tt> - Create a prompt option with blank value and the text asking user to select something
# * Any other key creates standard HTML attributes for the tag.
#
# ==== Examples
...
...
@@ -99,18 +101,26 @@ def form_tag(url_for_options = {}, options = {}, *parameters_for_url, &block)
# # => <select class="form_input" id="access" multiple="multiple" name="access[]"><option>Read</option>
# # <option>Write</option></select>
#
# select_tag "people", options_from_collection_for_select(@people, "id", "name"), :include_blank => true
# # => <select id="people" name="people"><option value=""></option><option value="1">David</option></select>
#
# select_tag "people", options_from_collection_for_select(@people, "id", "name"), :prompt => "Select something"
# # => <select id="people" name="people"><option value="">Select something</option><option value="1">David</option></select>
#
# select_tag "destination", "<option>NYC</option><option>Paris</option><option>Rome</option>", :disabled => true
# # => <select disabled="disabled" id="destination" name="destination"><option>NYC</option>
# # <option>Paris</option><option>Rome</option></select>
def
select_tag
(
name
,
option_tags
=
nil
,
options
=
{})
html_name
=
(
options
[
:multiple
]
==
true
&&
!
name
.
to_s
.
ends_with?
(
"[]"
))
?
"
#{
name
}
[]"
:
name
if
blank
=
options
.
delete
(
:include_blank
)
if
blank
.
kind_of?
(
String
)
option_tags
=
"<option value=
\"\"
>
#{
blank
}
</option>"
.
html_safe
+
option_tags
else
option_tags
=
"<option value=
\"\"
></option>"
.
html_safe
+
option_tags
end
if
options
.
delete
(
:include_blank
)
option_tags
=
"<option value=
\"\"
></option>"
.
html_safe
+
option_tags
end
if
prompt
=
options
.
delete
(
:prompt
)
option_tags
=
"<option value=
\"\"
>
#{
prompt
}
</option>"
.
html_safe
+
option_tags
end
content_tag
:select
,
option_tags
,
{
"name"
=>
html_name
,
"id"
=>
sanitize_to_id
(
name
)
}.
update
(
options
.
stringify_keys
)
end
...
...
actionpack/test/template/form_tag_helper_test.rb
浏览文件 @
dd7afdb2
...
...
@@ -200,12 +200,18 @@ def test_select_tag_with_include_blank
assert_dom_equal
expected
,
actual
end
def
test_select_tag_with_
include_blank_with_string
actual
=
select_tag
"places"
,
"<option>Home</option><option>Work</option><option>Pub</option>"
.
html_safe
,
:
include_blank
=>
"string"
def
test_select_tag_with_
prompt
actual
=
select_tag
"places"
,
"<option>Home</option><option>Work</option><option>Pub</option>"
.
html_safe
,
:
prompt
=>
"string"
expected
=
%(<select id="places" name="places"><option value="">string</option><option>Home</option><option>Work</option><option>Pub</option></select>)
assert_dom_equal
expected
,
actual
end
def
test_select_tag_with_prompt_and_include_blank
actual
=
select_tag
"places"
,
"<option>Home</option><option>Work</option><option>Pub</option>"
.
html_safe
,
:prompt
=>
"string"
,
:include_blank
=>
true
expected
=
%(<select name="places" id="places"><option value="">string</option><option value=""></option><option>Home</option><option>Work</option><option>Pub</option></select>)
assert_dom_equal
expected
,
actual
end
def
test_text_area_tag_size_string
actual
=
text_area_tag
"body"
,
"hello world"
,
"size"
=>
"20x40"
expected
=
%(<textarea cols="20" id="body" name="body" rows="40">hello world</textarea>)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录