ID「foo」のテキストフィールドが存在する場合と存在しない場合があります。存在する場合は、特定の値を入力したいと思います。
RJS ( Rails 2.2 )を使用してこれを行うにはどうすればよいですか?
私はこれを試しましたが、うまくいきません:
if page[:foo]
page[:foo].value = "bar"
end
私は得る
TypeError: テキストフィールドが存在しない場合は Null 値
.
ID「foo」のテキストフィールドが存在する場合と存在しない場合があります。存在する場合は、特定の値を入力したいと思います。
RJS ( Rails 2.2 )を使用してこれを行うにはどうすればよいですか?
私はこれを試しましたが、うまくいきません:
if page[:foo]
page[:foo].value = "bar"
end
私は得る
TypeError: テキストフィールドが存在しない場合は Null 値
.
存在する場合に対処する必要がある条件付きアイテムがある場合、私は何度もこれに出くわしました。page.select を使用すると、Null Value エラーを回避できます。
page.select('#dom_object_id').each do |element|
element.value = "bar"
end
これを *.js.rjs ファイルに入れました。select が空の配列をそれぞれに送信すると、正しい ID を持つ DOM オブジェクトがページにないときに ID で直接選択したときに取得する TypeError の代わりに何も返しません。
RJSからはできないと思います。回避策として、要素が存在するかどうかを確認する RJS から JavaScript メソッドを呼び出すだけです。
page << "update_foo('#{my_value}');"
ジャバスクリプト..
function update_foo(val)
{
if( $('foo') != undefined )
{
$('foo').value = 'bar';
}
}
編集
ルビ部分を修正。