如何从javascript渲染部分

我有一个选择,根据不同选择中的选择填充。要做到这一点,我做了’动态选择菜单’的Railscast#88推荐。

但是现在我需要渲染一个部分,传入每个选择中选择的值。 我无法弄清楚如何简单地从select中的:onchange事件触发方法调用,所以我想我需要在检测选择更改事件的javascript处理程序中调用render:partial。 但我无法弄清楚如何。 我在javascript方法中尝试了以下内容(在.js.erb文件中),但它没有按预期工作:

function staffSelected() { $('date_area').show();  "calendar" -%> } 

谁有一个很好的解决方案?

您无法在JavaScript中部分渲染以检测更改事件。 Ruby是服务器端,JavaScript是客户端。 当您的JavaScript运行时,您的Ruby已经被解析为常规的HTML。

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

使用AJAX控件(有Prototype / scriptaculous)在onchange事件中命中你的服务器。 您的服务器可以发送回RJS以更新其他下拉列表, 或者它可以返回标准JSON,您可以在AJAX调用的onSuccess方法中手动填充其他下拉列表。

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