実現したいこと
1:全ての項目を入力必須に設定しどれか一つでも入力されていない項目があればその項目の入力を促す文章を表示する
2:#mailの項目だけは正しいメールの形式になっているかチェックし、なっていなければ正しいメール形式になっていることを促す文章を表示する。ただし入力されていない場合は他の項目同様入力を促す文章を表示する
ご教示いただきたいこと
- 条件分岐の綺麗な書き方 (if文を使った条件分岐でなくても、上記の実現したいことが実現できれば方法は問いません)
jqueryを使って入力チェックを行いたいと考えています。以下に私の書いたプログラムを載せます
jquery
1$(document).ready(function () { 2 $('button[type=submit]').click(function () { 3 if ($('#name').val() == '' || $('#mail').val() == '' || $('#age').val() == '') {//フォームに空の項目があるか 4 if (validatemail($('#mail').val()) == false) {//メールの形式は妥当か 5 //メールの項目は入力されているがメール形式になっていないことを伝える文章を表示する処理 6 //入力されていない項目の入力を促す処理 7 console.log('入力されていない項目がある。メールは入力されているが形式がダメ'); 8 } else { 9 //入力されていない項目の入力を促す処理 10 //全てが入力されていな場合もこの処理が実行される 11 console.log('入力されていない項目がある'); 12 } else { 13 if (validatemail($('#mail').val()) == false) {//メールの形式は妥当か 14 //メールの項目は入力されているがメール形式になっていないことを伝える文章を表示する処理 15 console.log('全ての項目は入力されているがメールの形式がダメ'); 16 } else { 17 //全ての項目の検証に成功した場合の処理 18 console.log('全ての検証をクリア'); 19 } 20 } 21 }) 22 })
この書き方ですと重複した処理も多くあまりよくないと思うのでもう少し読みやすい分岐条件の書き方を教えてください
提示のコードは空項目を無視しますが、転記の際にコードが抜けたりはしてませんか?
すみません、空項目を無視するというのは具体的にはどういうことでしょうか?全ての項目が空の場合はconsole.log('入力されていない項目がある');が実行されこれは私の期待している処理ではあります
申し訳ないです。.val()つけ忘れていたので加筆しました
回答2件
あなたの回答
tips
プレビュー