[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を取得して回したほうがいいみたい。

広告