前提
現在Laravelを使ったお問合せフォームの作成を行なっております。
入力ページにある機能の一環として、メールマガジンの送信を許可するチェックボックスがあります。デフォルトでチェック状態(送信許可)にしており、送信を許可しない場合はチェック状態を外せる仕組みになっております。(チェックつけても外しても遷移先のページには何れかの値が渡っていることは確認とれています。)
実現したいこと
他の箇所でバリデーションエラー(例:名前の入力ミスなど)が起きた場合、再度正しい値を入力させる際に入力画面に戻すのですが、その時にチェックボックスのチェックを外した状態をキープしたいと思っております。(現状、バリデーションに引っかった際、チェックがついた状態に戻ってしまうことが問題となっています。)
該当のソースコード
<label> <input type="hidden" name="mail_confirm" value="0"> <input type="checkbox" checked name="mail_confirm" value='1' > メールマガジンの送信を許可しますか? </label>
試したこと
ラジオボタンで同じように値保持をする箇所があったのでold関数を使って以下のように同じように書いてみたが、チェックを外した状態でバリデーションに引っかかると、再度checked属性があるからなのか、チェックがついている状態に戻ってしまう。
<input type='checkbox' name='mail_confirm' checked value='1' {{ old('checked', '1') == '1' ? 'checked': ''>
<input type='hidden' name='mail_confirm' value='0' {{ old('checked', '1') == '0' ? 'checked': ''>
foreachで条件文を作成しようとしたが、そもそも新規登録の画面であり、持ってくるチェックされてるされてない値はDBに登録されていない状態なので使えない。
補足情報(FW/ツールのバージョンなど)
編集時でのチェックが外れた状態の値保持のやり方はネットにて色々と情報が転がっているのを確認取れたのですが、新規登録且つチェックボックスのチェックが外れた状態の値保持の情報が転がっておらず質問致しました。
初学者なので、至らない点や説明があると思いますが宜しくお願い致します。

回答1件
あなたの回答
tips
プレビュー