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での開発中の …

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

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

[ORACLE]ORACLEのTO_DATEを使用した年の変換について!

先日、作業中に発生した問題を共有することで少しでも皆さんが安定したリリースを迎えられますよう。。 TO_DATEによるYYYY変換の落とし穴 発生した内容でお話しするので、ピンポイントなケースになりま …