首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Ruby on Rails 3中添加视图助手中的动态Javascript代码?

如何在Ruby on Rails 3中添加视图助手中的动态Javascript代码?
EN

Stack Overflow用户
提问于 2010-12-13 11:52:11
回答 2查看 708关注 0票数 0

考虑其中一个视图文件中的以下代码:

代码语言:javascript
运行
复制
<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代码,它将显示:

代码语言:javascript
运行
复制
<div>
  <label for="new_shop">New shop:</label>
  <input id="new_shop" name="new_shop" type="text" />
</div>

一旦选择了“创建新商店”选项。

有没有可能从select_with_new_option生成这个Javascript代码,或者我应该用其他方式来实现?

EN

Stack Overflow用户

回答已采纳

发布于 2010-12-13 14:57:26

因为我看不到你生成的代码,所以我只是在编造代码,但你必须微调以满足你的需求……(这也假设您使用的是jQuery,请根据需要进行修改)。

假设您的输出类似于:

表代码等

代码语言:javascript
运行
复制
<select id="shop_select">
  <option value="new">New Shop</option>
  <!-- other options -->
</select>

页面上的某个地方是您的div

代码语言:javascript
运行
复制
<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>
票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4425680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档