ラジオボタンのカスタムデータ属性を取得し、特定の値の場合はチェックさせない方法
2023/10/25
ASPを使用したサイトで特定のradioボタンは選択不可にしたいというケースがあった。通常の場合だとdisabled属性指定で対応したいが当該formはASP側で制御されており変更が難しいという状況。幸いなことにradioボタンにカスタムデータ属性が設定されており、そちらのデータで選択可否を判断できたので対応方法をメモ。
ソースコード
<html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>test</title> </head> <body> <form> <label> <input type="radio" name="radio_1" value="1" data-flg="0">チェック不可 </label> <label> <input type="radio" name="radio_1" value="2" data-flg="1">チェック可 </label> <label> <input type="radio" name="radio_1" value="3" data-flg="1">チェック可 </label> </form> <script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script> <script type="text/javascript"> $(function(){ $('input[name="radio_1"]').on('click', function(){ if( !$(this).data('flg') ){ return false; } }); }); </script> </body> </html>
data-flgが0の場合は選択不可という挙動になる。尚、「return false」じゃなく「$(this).prop('checked', false)」で対応した場合、以下の違いがある。
「return false」の場合
チェック可のラジオボタンを選択→チェック不可のラジオボタンをクリックした際、チェック可のラジオボタンはチェックされたまま。
「$(this).prop('checked', false)」の場合
チェック可のラジオボタンを選択→チェック不可のラジオボタンをクリックした際、チェック可のラジオボタンはチェックが外れる。
関連記事
-
-
Ajaxを使用する際の注意
Ajaxで特にJSONPを使う際によくミスることがあるので 注意点をまとめておく ...
-
-
スクロールしてもついてくる追尾型の広告を作る方法
スマホサイトとかでよく見る、スクロールしてもページ下部とかに常時表示されている追 ...
-
-
jQueryの通知メッセージ用ライブラリ「Toastr」の利用方法
あるサイトのソースコードを拝見しているとToastrというJSファイルをCDNで ...
-
-
Lightboxで画像拡大時に文字タイトルとリンクをつける
lightboxで画像をクリックして拡大した際に、文字タイトルとその文字にリンク ...
-
-
jQueryにてclosestの使いどころとparent / parentsとの違いについて
あるソースコードを見ているとjQueryにてclosest()という使ったことの ...