考虑其中一个视图文件中的以下代码:
<table>
<tr>
<th><%= f.label(:shop, "Shop:") %></th>
<td><%= select_with_new_option(f, :shop, :name, :id) %></td>
</tr>
...
</table>select_with_new_option是我在app/helpers/application_helper.rb中定义的助手方法。它生成一个选择框,其中包含本例中的所有商店,以及"Create new shop“选项。
我想添加一个Javascript代码,它将显示:
<div>
<label for="new_shop">New shop:</label>
<input id="new_shop" name="new_shop" type="text" />
</div>一旦选择了“创建新商店”选项。
有没有可能从select_with_new_option生成这个Javascript代码,或者我应该用其他方式来实现?
发布于 2010-12-13 14:57:26
因为我看不到你生成的代码,所以我只是在编造代码,但你必须微调以满足你的需求……(这也假设您使用的是jQuery,请根据需要进行修改)。
假设您的输出类似于:
表代码等
<select id="shop_select">
<option value="new">New Shop</option>
<!-- other options -->
</select>页面上的某个地方是您的div
<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>https://stackoverflow.com/questions/4425680
复制相似问题