在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获取页面元素的值?
答案 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 << "}"