3

ID「foo」のテキストフィールドが存在する場合と存在しない場合があります。存在する場合は、特定の値を入力したいと思います。

RJS ( Rails 2.2 )を使用してこれを行うにはどうすればよいですか?

私はこれを試しましたが、うまくいきません:

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

私は得る

TypeError: テキストフィールドが存在しない場合は Null 値

.

4

2 に答える 2

6

存在する場合に対処する必要がある条件付きアイテムがある場合、私は何度もこれに出くわしました。page.select を使用すると、Null Value エラーを回避できます。

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

これを *.js.rjs ファイルに入れました。select が空の配列をそれぞれに送信すると、正しい ID を持つ DOM オブジェクトがページにないときに ID で直接選択したときに取得する TypeError の代わりに何も返しません。

于 2009-03-10T21:15:27.470 に答える
1

RJSからはできないと思います。回避策として、要素が存在するかどうかを確認する RJS から JavaScript メソッドを呼び出すだけです。

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

ジャバスクリプト..

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

編集

ルビ部分を修正。

于 2009-03-10T15:06:02.693 に答える