我有一个id为“foo”的文本字段,有时存在,有时不存在。如果它存在,我想填写一定的价值。
如何使用 RJS (在 Rails 2.2 中)执行此操作?
我尝试过这个并不起作用:
if page[:foo]
page[:foo].value = "bar"
end
我得到了
TypeError:如果文本字段不存在则为空值
答案 0 :(得分:6)
我已经多次出现这种情况,我有一个条件项,如果存在则需要对其进行操作。使用page.select可以避免Null Value错误。
page.select('#dom_object_id').each do |element|
element.value = "bar"
end
我把它放在我的* .js.rjs文件中。当select向每个数组发送一个空数组时,它会返回任何内容而不是当在页面上没有具有正确ID的DOM对象时直接通过id选择时得到的TypeError。
答案 1 :(得分:1)
我认为你不能从RJS。作为一种解决方法,您只需从RJS调用javascript方法来检查元素是否存在。
page << "update_foo('#{my_value}');"
Javascript ..
function update_foo(val)
{
if( $('foo') != undefined )
{
$('foo').value = 'bar';
}
}
修改
修复了红宝石部分..