我有一个 id 为“foo”的文本字段,有时存在,有时不存在。如果存在,我想填写某个值。
你如何通过使用RJS(在Rails 2.2中)来做到这一点?
我试过这个,但它不起作用:
if page[:foo]
page[:foo].value = "bar"
end
我明白了
TypeError:如果文本字段不存在,则为空值
.
我有一个 id 为“foo”的文本字段,有时存在,有时不存在。如果存在,我想填写某个值。
你如何通过使用RJS(在Rails 2.2中)来做到这一点?
我试过这个,但它不起作用:
if page[:foo]
page[:foo].value = "bar"
end
我明白了
TypeError:如果文本字段不存在,则为空值
.
我已经多次提出这个问题,我有一个条件项,如果它存在就需要对其采取行动。使用 page.select 可以避免 Null Value 错误。
page.select('#dom_object_id').each do |element|
element.value = "bar"
end
我把它放在我的 *.js.rjs 文件中。当 select 向 each 发送一个空数组时,它不返回任何内容,而不是当页面上没有具有正确 ID 的 DOM 对象时直接按 id 选择时得到的 TypeError。
我认为您不能从 RJS 获得。作为一种解决方法,您可以简单地从 RJS 调用一个 javascript 方法来检查元素是否存在。
page << "update_foo('#{my_value}');"
Javascript ..
function update_foo(val)
{
if( $('foo') != undefined )
{
$('foo').value = 'bar';
}
}
编辑
修复了红宝石部分..