3

我有一个 id 为“foo”的文本字段,有时存在,有时不存在。如果存在,我想填写某个值。

你如何通过使用RJS(在Rails 2.2中)来做到这一点?

我试过这个,但它不起作用:

if page[:foo]
  page[:foo].value = "bar"
end

我明白了

TypeError:如果文本字段不存在,则为空值

.

4

2 回答 2

6

我已经多次提出这个问题,我有一个条件项,如果它存在就需要对其采取行动。使用 page.select 可以避免 Null Value 错误。

  page.select('#dom_object_id').each do |element|
    element.value = "bar"
  end

我把它放在我的 *.js.rjs 文件中。当 select 向 each 发送一个空数组时,它不返回任何内容,而不是当页面上没有具有正确 ID 的 DOM 对象时直接按 id 选择时得到的 TypeError。

于 2009-03-10T21:15:27.470 回答
1

我认为您不能从 RJS 获得。作为一种解决方法,您可以简单地从 RJS 调用一个 javascript 方法来检查元素是否存在。

page << "update_foo('#{my_value}');"

Javascript ..

function update_foo(val)
{
  if( $('foo') != undefined )
  {
    $('foo').value = 'bar';
  } 
}

编辑

修复了红宝石部分..

于 2009-03-10T15:06:02.693 回答