2016-04-09 10 views
0

を検証しようとしています。次のように特定条件のテストは、次のとおり私は、フォーム用のユーザーIDを検証しようとしているユーザーID

ルール#1のすべての10個の位置が存在しなければならない#2ポジション5はハイフンでなければならない

ルール( - )4に

ルール#3の位置1でなければなりません10桁の数字

ルール#4の位置6は、規則4を介してルール1が検証

ルール#5を通過した場合桁 次の2つの規則(#5、#6)のみをチェックする必要があり、数値である必要があります麻痺の合計ハイフン( - )の左にある数字はゼロより大きく、ハイフン( - )の右側にある数字の合計はゼロより大きくなければなりません。

ルール番号6右の数字の合計ハイフンの( - )でなければなりません(ダブルプラス2)ハイフンの左側の数字の合計( - )

あなたは別のエラー条件のために異なるメッセージを提供しなければならない

私がしようとするとこの検証を実行すると、フォームは適切なエラーメッセージを表示する必要があるときに送信され、理由は不明です。

JavaScript関数:

function validateUserId() { 
    var value = document.getElementById("userId").value; 
    if (value.length != 10) { 
    errMessages += "User ID all 10 positions must be present"; 
return errMessages; 
    } 
    if (value[4] != "-") { 
errMessages +="User ID Position 5 must be a hyphen (-)" ; 
return errMessages; 
} 
    for (var i = 0; i < 4; i++) { 
    if (isNaN(value[i])) { 
    errMessages += "User ID Position " + i + " must be a number" ; 
    return errMessages; 
    } 
} 
for (i = 5; i < 10; i++) { 
    if (isNaN(value[i])) { 
    errMessages += "User ID Position " + i + " must be a number" ; 
    } 
} 
var lowsum = 0; 
for (i = 0; i < 4; i++) { 
lowsum += parseInt(value[i]); 
} 
if (lowsum <= 0) { 
errMessages += "User ID Sum of the first 4 numbers must be greater than 0" ; 
return errMessages; 
} 
var highsum = 0; 
for (i = 5; i < 10; i++) { 
highsum += parseInt(value[i]); 
    } 
    if (highsum <= 0) { 
    errMessages += "User ID Sum of the last 5 numbers must be greater than 0" ; 
return errMessages; 
} 
    if (highsum != (lowsum * 2) + 2) { 
errMessages += "User ID sum of the last 5 numbers must be the double plus of of the first 4 numbers" ; 
return errMessages; 
} 
return errMessages; 
} 

HTML:

<label class="label">Client ID </label>  
     <input type="text" name="userId" id="userId" size="10" maxlength="10" > 
+0

どのようにあなたのvalidateUserId関数を呼び出していますか? – moopet

答えて

0

これは完全に正常に見えます。しかし、あなたはreturnだけfalseする必要があります。あなたのコードは、この方法を変更します。

function validateUserId() { 
 
    var value = document.getElementById("userId").value; 
 
    if (value.length != 10) { 
 
    errMessages += "User ID all 10 positions must be present"; 
 
    alert(errMessages); 
 
    return false; 
 
    } 
 
    if (value[4] != "-") { 
 
    errMessages +="User ID Position 5 must be a hyphen (-)" ; 
 
    alert(errMessages); 
 
    return false; 
 
    } 
 
    for (var i = 0; i < 4; i++) { 
 
    if (isNaN(value[i])) { 
 
     errMessages += "User ID Position " + i + " must be a number" ; 
 
     alert(errMessages); 
 
     return false; 
 
    } 
 
    } 
 
    for (i = 5; i < 10; i++) { 
 
    if (isNaN(value[i])) { 
 
     errMessages += "User ID Position " + i + " must be a number" ; 
 
    } 
 
    } 
 
    var lowsum = 0; 
 
    for (i = 0; i < 4; i++) { 
 
    lowsum += parseInt(value[i]); 
 
    } 
 
    if (lowsum <= 0) { 
 
    errMessages += "User ID Sum of the first 4 numbers must be greater than 0" ; 
 
    alert(errMessages); 
 
    return false; 
 
    } 
 
    var highsum = 0; 
 
    for (i = 5; i < 10; i++) { 
 
    highsum += parseInt(value[i]); 
 
    } 
 
    if (highsum <= 0) { 
 
    errMessages += "User ID Sum of the last 5 numbers must be greater than 0" ; 
 
    alert(errMessages); 
 
    return false; 
 
    } 
 
    if (highsum != (lowsum * 2) + 2) { 
 
    errMessages += "User ID sum of the last 5 numbers must be the double plus of of the first 4 numbers" ; 
 
    alert(errMessages); 
 
    return false; 
 
    } 
 
    alert(errMessages); 
 
}
<form onsubmit="return validateUserId()"> 
 
    <input id="userId" /> 
 
    <input type="submit" /> 
 
</form>

関連する問題