AUDERIT.COM

フリーランスエンジニアの知識のアルバム

jQuery Visualforce スキル

[Visualforce][jQuery]ID指定で要素を選択する

投稿日:

Visualforceでの開発にて、jQueryで要素を IDで指定したいのになかなかうまく取得できなくて苦しみました。

いやだいぶハマりましたが以下にて解決

フルパスの指定は出来なかった

状況を簡単に

・ボタンにJavaScriptコードを設定したい。
・jQueryで要素を取得したいが取れない。

このサイトを参考にしました。しましたがうまくいかなかった部分を補間といった感じです。

[Visualforce]jQueryから簡単にVisualforceコンポーネントを操作しよう

Visualforceの[apex:inputField]みたいなタグのid要素を、jQueryコード(onclickとか)のトリガーに使用したい場合、「{!$Component」から始まるフルパスで指定しないといけないのですが、フルパスで指定すると、実際に動くように中で変換された時に

{!$Component.form.button}

form:button

のようになっているらしい。

ピリオド区切りのつもりがコロンに変わってる。。

そしてjQueryの中では、(よくわからないけど)コロンは特殊な意味を持つ記号らしく、これが入っているとVisualforceの要素として検知してくれないらしい。

というわけで諦めかけたんですが、どうやらパスの後方一致検索ができるという事を知りました。

$(“#” + {!$Component.form.button}).on(“click”, function(){ … }

はダメでしたが、

$(“[id$=button]”).on(“click”, function(){ … }

はいけました!

サンプルの中にある「$.escapeSelector」がホントならこの辺を助けてくれるのかも知れませんが、私の使っているバージョンでは使えなかったのも原因です。

なお、後方一致でIDを取る場合、idはページの中で一意でないといけないのでそこはご注意ください。

では!

-jQuery, Visualforce, スキル

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

[MySQL]リストアの際に、読み込みファイルが大きすぎるとエラーになるので設定を変更する。

今回は既存のシステムの運用のため、新しいPCへのセットアップを行っている時に発生したMySQLのエラーの解消方法です。 スポンサーリンク 発生したエラーはこちら MySQL server has go …

[jQuery]エラー「No plot target specified」

jQueryを使用した画面の作成時に上手くいかなかったところ 「No plot target specified」 の原因と対策 スポンサーリンク ターゲットの指定がない こんな感じの構造で画面に図を …

[eclipse]エラー「インスタンスが割り当て解除されるのを待っています」

eclipseでの開発中に発生したエラーです。 「インスタンスが割り当て解除されるのを待っています」 原因はとても簡単でした。備忘録に。 スポンサーリンク メモリの解放忘れ eclipseでの開発中の …

[Oracle]テーブルの最新の値を外部結合で取得したいなら。ORA-01799:列は副問い合わせに対して外部結合されません。

Oracleで発生したエラー ORA-01799:列は副問い合わせに対して外部結合されません。 他にも解決策はあるのでしょうが、今回はこれで解決 スポンサーリンク Oracleでは外部結合で最大値を取 …

[jQuery]エラー「Target dimension not set」

jQueryを使用した画面の作成時に上手くいかなかったところ 「Target dimension not set」 の原因と対策 スポンサーリンク ターゲットの指定がない こんな感じの構造で画面に図を …