首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从javascript渲染部分

如何从javascript渲染部分
EN

Stack Overflow用户
提问于 2010-02-25 10:17:12
回答 2查看 22.3K关注 0票数 9

我有一个select,它是根据不同select中的选择来填充的。为了做到这一点,我做了Railscast #88中关于“动态选择菜单”的建议。

但现在我需要呈现一个部分,传入在每个选择中选择的值。我不知道如何简单地从select中的:onchange事件触发方法调用,所以我想我需要从检测select change事件的javascript处理程序中调用render :partial。但我想不出是怎么回事。我在javascript方法(在.js.erb文件中)中尝试了以下内容,但它不能像预期的那样工作:

代码语言:javascript
复制
function staffSelected() {
    $('date_area').show();
    <% render :partial => "calendar" -%>
}

谁有好的解决方案?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-25 10:33:34

您不能在JavaScript内部呈现部分来检测更改事件。Ruby是服务器端,JavaScript是客户端。当你的JavaScript运行的时候,你的Ruby已经被解析成常规的ol了。

您最好的选择是执行以下操作:

在onchange事件中使用AJAX控件(有原型/脚本控件)来访问您的服务器。您的服务器可以发回RJS来更新其他下拉框,,它可以返回标准JSON,您可以在AJAX调用的onSuccess方法中手动填充其他下拉框。

票数 7
EN

Stack Overflow用户

发布于 2011-06-11 01:26:50

我想这就是你要找的。我使用"colors“ID在DIV中渲染部分,只有当所选单选按钮的值为红色时,才会渲染部分:

代码语言:javascript
复制
<script language="javascript" type="text/javascript">
jQuery(function($){
  $('#radio-buttons input[type=radio]').click(function() {
    if ($(this).attr("value") === "red") {
      $("#colors").html('#{escape_javascript(render :partial => "colors")}');
    }
  });
});
</script>
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2331130

复制
相关文章

相似问题

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