我正在尝试对一系列用户输入值(-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的任何内容,我就不会收到警报。 我在这里想念的是什么?
警告:我是新手。
答案 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;
}
}