0

ある範囲のユーザー入力値(-180〜180)に対して単純なフォーム検証を実行しようとしていますが、コードが期待どおりに動作していません。

function validateForm()
{
retVal = true;

lon = document.getElementById("LON").value;
if ((lon  >= -180 && lat <= 180 )== false) 
retVal=false;

if(retVal == false)
{

alert('Please correct the errors');
return false;
}
return retVal;
}

したがって、たとえば-254の値を入力すると、期待どおりにアラートが表示されます。ただし、-181より大きい値を入力しても、アラートは表示されません。私はここで何が欠けていますか?

警告:私は初心者です。

4

4 に答える 4

3

lon変数が。-180以上であるかどうかを確認する必要があると思います180。その簡単なifステートメントを使用してください:

var lon = document.getElementById("LON").value;
if (lon < -180 || lon > 180)
    retVal = false;

varキーワードを使用してローカル変数を定義する方がよいことに注意してください。

于 2013-02-13T22:00:25.137 に答える
1

本当にそれは必要ありません-式からブール値にif()設定するだけです...retval

function validateForm() {
    var lon = document.getElementById("LON").value;
    var retval = (lon  >= 180 || lon <= -180);
    if(!retVal) { alert('Please correct the errors'); }
    return retVal;
}
于 2013-02-13T22:05:38.110 に答える
1

初期化された「lon」がありますが、「lat」はどこで初期化されていますか?

以下が機能するはずです。

function validateForm()
{
    var lon = document.getElementById("LON").value;        
    var lat = document.getElementById("LAT").value;

    var isValid = (lon  >= -180 && lat <= 180 );

    if ( !isValid)        
    {
        alert('Please correct the errors');
    }

    return isValid;
}
于 2013-02-13T22:06:58.220 に答える
1

ある範囲で検証する場合、if条件は単一の変数のみをチェックする必要があります。trueの場合はtrueを返し、そうでない場合はエラーを表示してfalseを返します。

function validateForm()
{
    retVal = true;

    lon = document.getElementById("LON").value;
    if (lon  >= -180 && lon <= 180) 
    {
    return retVal;
    }
    else
    {
    alert('Please correct the errors');
    retVal = false;
    return retVal;
    }
}
于 2013-02-13T22:11:10.487 に答える