実習の課題で、会員登録画面のようなものを作ろうとしています。
あらかじめ仕様が決められていて登録ボタンを押した時、フォームに入力されたものをチェックしてエラーダイアログを表示させるようになっているのですが、そのうちの一つができません。
仕様は
・入力文字が全角の場合10文字以内、半角の場合は30文字以内
・全角と半角が混じるのは許さない
となっています。
色々と調べた結果、1つ目はテキストボックスのmaxlengthを30にして、更に全角が入力された場合にチェックすることで解決したのですが、2つ目の解決法が全く浮かばず困っています。
チェックする部分のコードは以下の通りです
JavaScript
1function check() { 2 var flag = 0; 3 var message = ""; 4 var hantei = 0; 5 var simei = document.toroku.SIMEI.value; 6 if (simei == "") { 7 flag = 1; 8 message += "氏名が未入力です\n"; 9 } 10 for (var i = 0; i < simei.length; i++) { 11 // 1文字ずつ文字コードをエスケープし、その長さが4文字以上なら全角 12 var len = escape(simei.charAt(i)).length; 13 if (len >= 4) { 14 //全角の場合 15 if (simei.length > 10) { 16 hantei = 1; 17 } 18 } 19 } 20 if (hantei == 1) { 21 flag = 1; 22 message += "氏名は全角の場合15文字以内で入力してください\n"; 23 hantei = 0; 24 } 25 if (flag) { 26 window.alert(message); 27 return false; 28 } else { 29 return true; 30 } 31 }
コピペと改変を繰り返しているので見づらかったらごめんなさい。あと変数のネーミングの酷さは自覚しています。
よろしければアドバイス等お願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/08 04:32