Rails 2.3.5,Ruby 1.86
我无法弄清楚这一点.下面的选择中的'onchange'没有被写入(没有在HTML中写的onchange).我没有看到对语法的引用不同,除了在一些较旧的示例中onchange被括在括号中:
<%= f.select :directory_id, options_for_select(@directories, @directory_to_select), :onchange => 'folder_lookup()' %>
Run Code Online (Sandbox Code Playgroud)
结果是:
<select id="contact_directory_id" name="contact[directory_id]">
<option value="2">test_1</option>
<option value="4">test_2</option>
<option value="33" selected="selected">test_3</option>
</select>
Run Code Online (Sandbox Code Playgroud)
如果我只是将"f.select"更改为"select_tag",则会正确写入onchange(不是我想要这样做):
<%= select_tag :directory_id, options_for_select(@directories, @directory_to_select), :onchange => 'folder_lookup()' %>
Run Code Online (Sandbox Code Playgroud)
结果是:
<select id="contact_directory_id" name="directory_id" onchange="folder_lookup()">
<option value="2">test_1</option>
<option value="4">test_2</option>
<option value="33" selected="selected">test_2</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我是否在select和select_tag帮助器之间缺少onchange的语法差异?
谢谢!
小智 23
这就是你想要的:
<%= f.select :directory_id, options_for_select(@directories, @directory_to_select), {}, :onchange => 'folder_lookup()' %>
Run Code Online (Sandbox Code Playgroud)
使用select方法签名如下所示select(object, method, choices, options = {}, html_options = {}).onchange是一个html_option,因为你没有任何选项,你需要一个空哈希,以便你的最后一个onchange被视为一个html_option.
| 归档时间: |
|
| 查看次数: |
6195 次 |
| 最近记录: |