1

Ruby on Railsでは、インラインRJSを使用しており、selectedIndexプロパティにアクセスして、選択された選択オプションを見つけようとしています。何らかの理由でこれを機能させることができません。

したがって、たとえば、selectedIndexプロパティの割り当て/変更はうまく機能します。

page['model_author_id'].selectedIndex = 5

しかし、それを読んでRJS内で比較を行うことは機能しません:

if page['model_author_id'].selectedIndex == 0 then xxx end

Firebugでデバッグを行いましたが、RJSが次の(誤った)コードを生成しているようです-

$("model_author_id").selectedIndex().= = 0;

したがって、問題は、RJSを使用してページ要素の値を取得するにはどうすればよいかということです。

4

1 に答える 1

2

RJSは単なるjavascriptジェネレーターであり、javascriptはクライアント側になるまで実行されません。したがって、Rubyを使用している間は、選択オプションの値を判別できません。

選択した値に対して「if」ステートメントを実行する場合は、Javascriptで実行する必要があります。

page << "if ($('model_author_id').selectedIndex() == 0) {"
  page["model_author_id"].selectedIndex = 5 # or whatever you want here
page << "}"
于 2009-08-18T16:52:18.367 に答える