访问RJS中的元素值

时间:2009-08-17 20:42:35

标签: ruby-on-rails rjs

在Ruby on Rails中我正在使用内联RJS并尝试通过访问selectedIndex属性找出选择了哪个选项。出于某种原因无法使其发挥作用。

因此,例如,分配/更改selectedIndex属性非常有效:

page['model_author_id'].selectedIndex = 5

但是阅读它并在RJS中进行比较是行不通的:

if page['model_author_id'].selectedIndex == 0 then xxx end

我在Firebug中进行了调试,似乎RJS生成以下(不正确的)代码 -

$("model_author_id").selectedIndex().= = 0;

所以,问题是 - 如何使用RJS获取页面元素的值?

1 个答案:

答案 0 :(得分:2)

RJS只是一个javascript生成器,javascript不会被执行,直到它的客户端。因此,您仍然无法在Ruby中确定select选项的值。

如果您想对所选值执行“if”语句,则需要在Javascript中执行此操作。

page << "if ($('model_author_id').selectedIndex() == 0) {"
  page["model_author_id"].selectedIndex = 5 # or whatever you want here
page << "}"