Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在RubyonRails3中从视图助手添加动态Javascript代码?_Javascript_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

如何在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>