5日以上にわたり、エラーを表示させる方法についてネットで調べましたが、jqueryに関してはかなりの初心者であるため、自分が使っているテキスト以外の記述方法ですと、悲しいことに全くわかりません。
フォームのコードと、jsのコードを載せます。
jsのコードに書いてある
「クレジットカードの値が空 && 銀行振込の値が空 && 着払いの値が空」の部分の記述方法が分かりません。何度も何通りも書き試しましたが全くうまくいきませんでした。
初めて質問するため読みにくいかもしれず申し訳ありませんが大変困っております。
どうかお力をお貸しください。
<div id="form_area"> <div class="form_column"> <div class="form_label">お名前<span class="form_red">必須</span></div> <div class="form_input"> <input type="text" name="username" id="username" class="form_parts" placeholder="山田 太郎"> </div> </div> <div class="form_column"> <div class="form_label">フリガナ<span class="form_red">必須</span></div> <div class="form_input"> <input type="text" name="userkana" id="userkana" class="form_parts" placeholder="ヤマダ タロウ"> </div> </div> <div class="form_column"> <div class="form_label">郵便番号<span class="form_red">必須</span></div> <div class="form_input"> <input type="text" name="post" id="post" class="form_parts" placeholder="1234567"> </div> </div> <div class="form_column"> <div class="form_label">都道府県<span class="form_red">必須</span></div> <div class="form_input"> <select name="pref2" id="pref2" class="form_parts"> <option value="" selected>選択してください</option> <option value="北海道">北海道</option> <option value="青森県">青森県</option> <option value="岩手県">岩手県</option> <option value="宮城県">宮城県</option> </select> </div> </div> <div class="form_column"> <div class="form_label">市区町村<span class="form_red">必須</span></div> <div class="form_input"> <input type="text" name="municipalities" id="municipalities" class="form_parts" placeholder="○○○○○○1−1"> </div> </div> <div class="form_column"> <div class="form_label">マンション名<span class="form_gray">任意</span></div> <div class="form_input"> <input type="text" name="apartment" id="apartment" class="form_parts" placeholder="○○○○○○マンション○○号"> </div> </div> <div class="form_column"> <div class="form_label">電話番号<span class="form_red">必須</span></div> <div class="form_input"> <input type="text" name="tel_no" id="tel_no" class="form_parts" placeholder="00000000000"> </div> </div> <div class="form_column"> <div class="form_label">メールアドレス<span class="form_red">必須</span></div> <div class="form_input"> <input type="text" name="email" id="email" class="form_parts" placeholder="○○○○○○@○○○○○○.○○○"> </div> </div> <div class="form_column"> <div class="form_label">パスワード<span class="form_red">必須</span></div> <div class="form_input"> <input type="password" name="password" id="password" class="form_parts" placeholder="4文字以上、英数字含む"> </div> </div> </div> <div class="payment_title">お支払い方法</div> <label> <input type="radio" name="payment" id="creditcard" class="payment_parts" value="クレジットカード" required>クレジットカード </label> <label> <input type="radio" name="payment" id="bank" class="payment_parts" value="銀行振込">銀行振込 </label> <label> <input type="radio" name="payment" id="cash_on_delivery" class="payment_parts" value="着払い">着払い </label> </div> <p id="form_has_error"></p> <div id="order"> <button type="submit" name="order_button" id="order_button">注文する▼</button> </div> </div>```ここに言語を入力 コード $('#order_button').on('click',function(e) { var username = $('#username').val(); var userkana = $('#userkana').val(); var post = $('#post').val(); var pref2 = $('#pref2').val(); var municipalities = $('#municipalities').val(); var tel_no = $('#tel_no').val(); var email = $('#email').val(); var password = $('#password').val(); var creditcard = $('#creditcard').prop("checked"); var bank = $('#bank').prop("checked"); var cash_on_delivery = $('#cash_on_delivery').prop("checked"); var order_button = $('#submit').val(); var error_text = ''; if (username.trim() === '') { error_text = 'お名前を入力してください'; } else if (userkana.trim() === '') { error_text = 'フリガナを入力してください'; } else if (!userkana.match(/^[ァ-ヴ ]+$/)) { error_text = 'フリガナには全角のカタカナとスペースのみを入力してください'; } else if (post.trim() === '') { error_text = '郵便番号を入力してください'; } else if (pref2.trim() === '') { error_text = '都道府県を選択してください'; } else if (municipalities.trim() === '') { error_text = '市区町村を入力してください'; } else if (!municipalities.match(/^[^\x20-\x7e]*$/)) { error_text = '全角で入力してください'; } else if (!tel_no.match(/^0\d{9,10}$/)) { error_text = '電話番号を入力してください'; } else if (email.trim() === '') { error_text = 'メールアドレスを入力してください'; } else if (!email.match(/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/)) { error_text = 'メールアドレスを正しい書式で入力してください'; } else if (!password.match(/^(?=.*[a-zA-Z])[a-zA-Z0-9]{4,}$/)) { error_text = '4文字以上英数字で入力してください' } else if(クレジットカードの値が空 && 銀行振込の値が空 && 着払いの値が空) { error_text = 'お支払い方法を選択してください'; } $('#form_has_error').text(error_text); if (error_text === '') { //$('#contact_form').submit(); } });
コード
以上です。 よろしくお願いいたします。
調べたことが何も書かれていませんが、「javascript radio checked 判定」で検索して出てくるサイトを読んでいろいろ試してみてはいかがでしょうか。
ご提案いただきありがとうございます。
ラジオボタン 未選択 エラー表示 jquery
ラジオボタン バリデーション jquery
入力チェックとエラー表示
など、
書ききれないほど調べブックマークし何度も読み何日も試していました。
それでも何を試してもうまくいかず困っているので投稿しました。
> 書ききれないほど調べブックマークし何度も読み何日も試していました。
読んだ記事のURLと、「実際に書いたコード」をご提示ください。
コメントありがとうございます。
ラジオボタンの未選択エラーに関して読んだ記事のURL
https://to-benefit7.com/jquery-inputcheck/
https://qiita.com/shige-u/items/58d82cb85fc7496572f3
https://mugenweb-note.com/web/jquery/radio-selectbox-validation
https://takuyakobayashi.id/blog/2020/01/23/6178
https://simplesimples.com/web/markup/javascript/formcheck/
https://code-kitchen.dev/html/input-radio/
https://itsakura.com/jquery-radiobutton
https://www.sejuku.net/blog/46739
他には正規表現に関する記事なので割愛します。
コードを書く→試す→うまくいかない→削除→また違うコードを書く・・・、ということを繰り返していたので、実際に書いたコードは今は残っておらず
else if(クレジットカードの値が空 && 銀行振込の値が空 && 着払いの値が空) {
error_text = 'お支払い方法を選択してください';
}
↑この状態です。
ひとつコメントアウトしていたのが残っていました。
else if ("input:not(:checked) + label") {
error_text = 'お支払い方法を選択してください';
}
↑こちらを書き、ラジオボタンを選択せずにボタンを押すと、「お支払い方法を選択してください」のエラーの表示が出ました。
ですので、次はラジオボタンをひとつ選択してからボタンをクリックしてみたところ、選択しているのに「お支払い方法を選択してください」のエラーが表示されました。
回答ではなくヒントなのでコメントで
「jQuery radio 取得」で検索してみましたか?
いくらでもヒットするので、やりたい事は見つけられると思いますよ。
ありがとうございます。
jQuery ラジオボタンの値を取得/設定するサンプル
https://itsakura.com/jquery-radiobutton
こちらの記事、他にも調べて読みましたが、それでもどうしても分かりませんでした。
楽をしたくて書き込んでいるわけではないのです。。
回答1件
あなたの回答
tips
プレビュー