犬ターネット

input:radio を display:none → required 属性をつけてもエラーメッセージが表示されない

2018-11-05 html5

通常の場合。ラジオボタン未選択で送信ボタンを押すとブラウザがエラーメッセージを表示してくれる。

<form action="javascript:;">
<p>
<input type="radio" name="radio1" id="id_radio1_1" value="1" required /><label for="id_radio1_1">radio 1</label>
<input type="radio" name="radio1" id="id_radio1_2" value="2" required /><label for="id_radio1_2">radio 2</label>
<input type="submit" value="送信" />
</p>
</form>


こちらは input:radio を display:none で隠し、checked されたときに labelタグの色を変えるcssを適用したもの。ラジオボタン未選択で送信ボタンを押してもエラーメッセージが表示されない。仕様だから仕方ないけれど、エラーメッセージを表示したい、もしくはエラーメッセージの場所をコントロールできるようにしてもらいたい…。

<style>
.cls_radio input[type="radio"]{display:none;}
.cls_radio input[type="radio"]:checked+label{background-color:#0f0;color:#fff;}
</style>
<form action="javascript:;">
<p class="cls_radio">
<input type="radio" name="radio2" id="id_radio2_1" value="1" required /><label for="id_radio2_1">radio 1</label>
<input type="radio" name="radio2" id="id_radio2_2" value="2" required /><label for="id_radio2_2">radio 2</label>
<input type="submit" value="送信" />
</p>
</form>


継続はパワー

デート、FF6