一般的にはそれで良いんですが、valueと違う属性を取得したい場合があります。
例えば、消費税率とか。
データベースに保存する値としては、消費税率のコードで良いのですが、画面上では、コードではなく実際の消費税率が必要とかという場合です。
例と使い方を書いておきます。
HTML
使い方
HTML上では、リストの4行目(8%の行)が選択されていると想定します。選択されているリストのコード(value)を取得する
console.log($("#tax_rate").val2());3
選択されているリストのdata属性を取得する
console.log($("#tax_rate").val2("rate"));8
JQueryのプラグイン
/** * selectタグのoptionに付けられたdata属性の値または、そのオブジェクトの値を取得する * @param string data_key data属性のキー名 * @return 指定したキーの値または、そのオブジェクトの値 */ jQuery.fn.val2 = function(data_key){ if($(this)[0].nodeName==="SELECT" && data_key!==undefined && data_key!=="") { var index = $(this)[0].selectedIndex; return $("option", this).eq(index).data(data_key); }else { if(data_key!==undefined && data_key!=="") { return $(this).data(data_key); }else { return $(this).val(); } } }
これで、JQueryのvalではなく、val2を使えば、
イヤ、値のセットができないので置き換えではできないな…。
val2というメソッド名も変更しないと…。
0 件のコメント:
コメントを投稿