如何在RubyonRails3中从视图助手添加动态Javascript代码?
考虑其中一个视图文件中的以下代码:如何在RubyonRails3中从视图助手添加动态Javascript代码?,javascript,ruby-on-rails,ruby-on-rails-3,Javascript,Ruby On Rails,Ruby On Rails 3,考虑其中一个视图文件中的以下代码: <table> <tr> <th><%= f.label(:shop, "Shop:") %></th> <td><%= select_with_new_option(f, :shop, :name, :id) %></td> </tr> ... </table> 选择“创建新店铺”选项后 可以从select\u
<table>
<tr>
<th><%= f.label(:shop, "Shop:") %></th>
<td><%= select_with_new_option(f, :shop, :name, :id) %></td>
</tr>
...
</table>
选择“创建新店铺”选项后
可以从
select\u with\u new\u option
生成此Javascript代码吗?或者我应该以其他方式生成此Javascript代码吗?由于我看不到您生成的代码,所以我正在编写此代码,但您必须进行微调以满足您的需要。。。(这还假设您正在使用jQuery,根据需要进行修改)
假设您的输出如下所示:
表代码等
新店
页面上的某个地方住着你的div
新店铺:
$(函数(){
变量$new#u shop_holder=$('new#u shop_holder');
$('select#shop _select')。更改(函数(e){
if(this.value=='new'){$new_shop_holder.show();}
else{$new_shop_holder.hide();}
});
});
您可以试试
“Create”},:onchange=>
“显示新表单()”)%>
其中show_new_form是用于隐藏和显示新店主div的javascript,或者您可以使用
“选择”},:onchange=>“新建”
Updater('options'、'action\u url',
{异步:true,evalscript:true,
参数:值})”)%>
以及控制器中的操作
def action_url渲染:更新{ |page | page.replace_html “新店铺持有人”:部分=> 如果值=“”,则“添加新店铺”}
结束 这将调用只有在选择创建店铺时才具有进入新店铺的表单的部分
<div>
<label for="new_shop">New shop:</label>
<input id="new_shop" name="new_shop" type="text" />
</div>
<select id="shop_select">
<option value="new">New Shop</option>
<!-- other options -->
</select>
<div id="new_shop_holder" style="display: none;">
<label for="new_shop">New shop:</label>
<input id="new_shop" name="new_shop" type="text" />
</div>
<script type="text/javascript">
$(function(){
var $new_shop_holder = $('#new_shop_holder');
$('select#shop_select').change(function(e) {
if (this.value == 'new') { $new_shop_holder.show(); }
else { $new_shop_holder.hide(); }
});
});
</script>