0

フォームのいくつかの単純なフィールドを検証する Javascript を作成しました。私の問題は、フォームにエラーがない場合でもコードが機能することです。

具体的には、エラーをスローしますif(openHour > closeHour)

これはコードです:

function checkForm()
{  
    var openHour;
    var closeHour;
    var i;

    for(i=1;i<8;i++)
    {
    openHour = document.getElementById("openHours" + i).value;
    closeHour= document.getElementById("closeHours" + i).value;

    if(openHour > closeHour)
    {   
    document.getElementById('error').innerHTML= "Opening Error at " + i;  
    return false;
    }
    if(openHour == "0" && closeHour > 0)
    {
    document.getElementById('error').innerHTML= "Closing Error at " + i;  
    return false;
    }


    }
}
4

2 に答える 2

2

openHours フィールドと closeHours フィールドには常にデフォルト値がありますか?

たとえば、いくつかのデフォルトを設定してみてください。

var openHour = 0;
var closeHour = 0;

次に、それらを割り当てる前に、openHours と closedHours に値があるかどうかを確認します。

if (document.getElementById("openHours" + i).value != null && document.getElementById("openHours" + i).value != "")
    openHour = document.getElementById("openHours" + i).value;


if (document.getElementById("closeHours" + i).value != null && document.getElementById("closeHours" + i).value != "")
    closeHour = document.getElementById("closeHours" + i).value;
于 2012-04-10T23:04:11.167 に答える
1
openHour = parseInt(document.getElementById("openHours" + i).value);
closeHour = parseInt(document.getElementById("closeHours" + i).value);

それらを比較できるようにするために、値を整数に解析する必要がありました。

ご協力ありがとうございます

于 2012-04-17T19:12:10.547 に答える