次のJavascrpitは自分がHTMLで構成された入力フォームの空欄チェックのソースコードなのですが、個人的にネストが深すぎて気になっておりますし、縦にも長くて気になります。
lang
1function isNotInputEmpty(){ 2/* 3 * 空欄があった場合はアラートを表示する。 4 */ 5 var empty_string = '' 6 for each(var element in document.input_form){ 7 if('text' == element.type && '' == element.value){ 8 switch(element.name){ 9 case 'name': 10 empty_string += '「お名前」の欄が入力されていません。'; 11 break; 12 case 'name_kana': 13 empty_string += '「カタカナ」の欄が入力されていません。'; 14 break; 15 case 'mail': 16 empty_string += '「メールアドレス」の欄が入力されていません。'; 17 break; 18 case 'tel': 19 empty_string += '「電話番号」の欄が入力されていません。'; 20 break; 21 case 'postcode': 22 empty_string += '「郵便番号」の欄が入力されていません。'; 23 break; 24 case 'state': 25 empty_string += '「都道府県」の欄が入力されていません。'; 26 break; 27 case 'city': 28 empty_string += '「市区町村」の欄が入力されていません。'; 29 break; 30 case 'addr': 31 empty_string += '「市区町村」の欄が入力されていません。'; 32 break; 33 } 34 35 if(0 > empty_string.length && ('addr' != element.name || 'member_num' != element.name){ 36 enpty_string += '\n'; 37 } 38 } 39 if(0 > empty_string.length){ 40 alert(empty_string); 41 return false; 42 } else { 43 return true; 44 } 45 } 46}
自分なりには
「後から変更があったとしてもコードの編集する量を最小限に抑えれないか」
と考えてこのコードを書きましたが、これとあと1つ処理の順序を変えることが可能だと思いまして、一つ目は
- textエレメントをswitchで判別する
- caseの中でif空欄判定をする
- 空欄であればエラーメッセージを入れる
この処理だとテキストエレメントを取得するときのfor eachが省けて良いと思ったのですが、先に書いたとおり
「後から変更があったとしてもコードの編集する量を最小限に抑えれないか」
という個人的な観点からするとこのコードが一番なのかなと思っているのですが……。
ここで質問です。
Webのフォームに限らず、入力フォームの入力確認処理では似たような処理を書くと思いますが、皆さんはどのように書きますでしょうか、またそのように書いた理由も教えていただけると幸いです。言語は問いません。
P.S.
このソースコードはまだ実行していないため、そもそも動かないかもしれません。その部分のご指摘でも構いません。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/09/16 09:39