[JavaScript]
以下のようにすれば一括でフォームの入力チェックを行うことが可能。
function EntryCheck(){
var elementsLen = document.form1.elements.length;
notRequirement = ['fax'];
var english_only = ['company_en', 'organization_type_en', 'repname_en_last', 'repname_en_first'];
var numbers_only = ['company_registration_year', 'company_registration_month', 'company_registration_day', 'zip1', 'zip2'];
var numbers_and_hyphen = ['phone', 'fax'];
for (var i = 0 ; i < elementsLen ; i++) {
if(document.form1.elements[i].type == 'text' || document.form1.elements[i].type == 'textarea' ) {
var exclude = 0;
for (var temp in notRequirement) {
if ( document.form1.elements[i].name == notRequirement[temp] ) {
exclude = 1;
}
}
//必須項目且つ値が空の場合はエラーを表示
if ( !exclude && !document.form1.elements[i].value) {
document.form1.elements[i].focus();
alert('必須項目が入力されていません');
return false;
}
}
//ローマ字only項目のチェック
for (var j in english_only) {
if ( document.form1.elements[english_only[j]].value && !document.form1.elements[english_only[j]].value.match(/^[\w|\s|\-|\'|\,|\&|\.|\@]+$/) ) {
document.form1.elements[english_only[j]].focus();
alert("ローマ字\(半角\)にて記入してください");
return false;
}
}
//数値only項目のチェック
for (var k in numbers_only) {
if ( document.form1.elements[numbers_only[[k]]].value && !document.form1.elements[numbers_only[[k]]].value.match(/^\d+$/) ) {
document.form1.elements[numbers_only[[k]]].focus();
alert("半角英数字にて記入してください");
return false;
}
}
補足: document.formname.elementsはIEだとうまく動かないみたいなので、上記のようにdocument.formname.elements.lengthを取得して回したほうがいいみたい。
広告
