1. ホーム
  2. ハイパーリンク

[解決済み】ラジオボタンはなぜ "読み取り専用 "にできないのですか?

2022-04-03 15:41:43

質問

ラジオボタンを表示し、その値を送信させ、状況によっては編集できないようにしたいのですが、可能でしょうか?Disabledでは、値が送信されず、ラジオボタンが灰色になってしまうので、うまくいきません。読み取り専用は本当に私が探しているものなのですが、なぜかうまくいきません。

読み取り専用を期待通りに動作させるには、何か奇妙なトリックが必要なのでしょうか?代わりにJavaScriptでやればいいのでしょうか?

ちなみに、ラジオボタンでは読み取り専用が機能せず、他の入力タグでは機能するのはなぜか、ご存知の方はいらっしゃいますか?これは、HTMLの仕様にある理解しがたい欠落の1つなのでしょうか?

解決方法は?

ラジオボタンで、チェックされていないラジオボタンだけを無効にして、readonlyを装いました。これにより、ユーザーは別の値を選択することができなくなり、チェックされた値は常に送信時に投稿されるようになります。

jQueryを使ってreadonlyにする。

$(':radio:not(:checked)').attr('disabled', true);

この方法は、選択リストを読み取り専用にする場合にも有効ですが、選択されていないオプションをそれぞれ無効化する必要があります。