意見交換
[前提]
- jQuery
- CakePHP
機能の要件
- チェックボックスのオンオフでsubmitボタンを切り替える → 実装済
- submitを押した時入力不備がある場合バリデーションチェックがかかる → 実装済
- バリデーションチェックがかかっても値が保持される → 実装済
意図しない挙動
順を追って書きます。
①初期画面(問題なし)
- プライバシーポリシーに同意するチェック オフ
- 確認するボタン disable true(確認ボタンは押せない)
②プライバシーポリシーに同意するチェック(問題なし)
- プライバシーポリシーに同意するチェック オン
- 確認するボタン disable false(確認ボタン押せる)
③確認するボタンをクリックし、バリデーションチェック後(問題あり)
- プライバシーポリシーに同意するチェック オン
- 確認するボタン disable true(確認ボタンは押せない) → チェックがオンのままなのにtrueになってしまう
コード抜粋
php
1 <div class="formSet2"> 2 <div class="formItem"> 3 <div class="radioItem centerRadioItem"> 4 <div class="check"> 5 <?php echo $form->input('agree', array('type' => 'checkbox', 'class' => 'contact_method', 'options' => $select_data['agree'], 'label' => false)); ?> 6 <label class="agreeText" for="ContactAgree"><a href="/privacy" target="_blank" rel="noopener noreferrer">プライバシーポリシー</a>に同意する</label> 7 </div> 8 </div> 9 </div> 10 </div> 11 12 <div class="btnWrapper"> 13 <input type="hidden" name="mode" value="input"> 14 <input type="button" value="確認する" class="btn morebtn" id="entryBtn" name="data[btnSubmit]" onclick="submit();" /> 15 </div>
js
1$(function(){ 2 // 同意ボタンが押されかったらdisableにする 3 $('#entryBtn').prop('disabled', true); 4 $('.contact_method').change(function() { 5 if ( $(this).is(':checked') ){ 6 $('#entryBtn').prop('disabled', false); 7 } else { 8 $('#entryBtn').prop('disabled', true); 9 } 10 }); 11});
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/03/09 05:11