じぶんメモ

プログラミングのメモ、日常のメモとか。

Javascript

ブックマークレットでフォームに自動的に入力するスクリプトを作りたい

テストとかで画面に値を入力する場合、 繰り返しテストをしていると、 毎回フォームに値を入力しないといけないのがダルい。 ブックマークレットで1クリックだけでフォームに値をセットできるスクリプトを作りたい。 とりあえずフォームの要素に値をセットす…

jQueryを使用したAjax通信

Ajax通信でハマったのでメモ。 ちなみにrailsなら :remote => true にしておけばjsにajax処理書かなくても問題ない。 (その代わり.js.erbが必要か。) 他の言語でもやることを想定してメモしておく。 通信方法 ボタン押した時にAjaxでデータ取ってくるみたい…

javascriptでの文字列エスケープ

XSS対策としてjavascriptでの文字列エスケープについて調べた。 PHPや他の言語のようにサニタイズメソッドが用意されていないようなので 独自に実装するのが良さそう。 考慮する必要があるのは、 < → &lt; > → &gt; " → &quot; ' → &#39; & → &amp; リプレー…

フォームでのエンターキー押下時の送信制御

フォームでエンターキー押下時の制御 フォームのinputにフォーカスが当たっている状態でエンターキーを押下すると、 フォームの内容が送信される。 エンターキー押下時で送信させたくない場合は以下のようにjavascriptで制御してやれば良い。 $(document).re…

knockoutを使ったDOM操作

knockout.jsを使えば、DOM操作を簡略に記述することができ、 コードの行数が減りそう。jQueryでガシガシDOM操作するよりスマートに記述できる。 knockoutでは、jsの変数と、htmlのセレクターをko.observable()という関数を使って関連づけることで、 自動的に…

javascriptで金額を千単位でカンマ区切りにする

javascriptで金額を扱う際に、千単位でカンマを付与させる。 ちなみにカンマ区切りは英語でthousand separator。 方法1. 正規表現 var amount = 100000; var formatedAmount = String(amount).replace( /(\d)(?=(\d\d\d)+(?!\d))/g, '$1,'); 方法2. toLocale…

jQueryを使用したセレクターのソート

jQueryを使用してセレクターのソートを行う際は、arrayクラスのsort()関数を使用する。 sort関数は、引数なしも実行可能だが、 ソート条件を指定できる。 sort()の戻り値(aとbをソートした場合) 1:bがaの手前に移動する 0:順序の変化なし -1:aがbの手前に移…

ドロップダウンリスト変更時に、選択したマスタコードに紐づく情報を再描画せずに表示する。

何をしたいか 以下のようなドロップダウンリストを考える。 画面表示されている文言はマスタの名称 Valueはマスタのコード値 ドロップダウンリストを変えると、タグにマスタに保持されている値が表示される。 金利コードにリンクする金利をタグに表示させる…