Javascript AND语句语法

时间:2013-02-13 21:58:47

标签: javascript forms syntax

我正在尝试对一系列用户输入值(-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 个答案:

答案 0 :(得分:3)

我猜您应该检查lon变量是否不低于-180且不超过180。使用简单的if语句:

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

请务必注意,您最好使用var关键字定义局部变量。

答案 1 :(得分: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;
}

答案 2 :(得分: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;
}

答案 3 :(得分: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;
    }
}