while( $data is comming from db)
{
<{form} name=formName.$uniqueValue action= onsubmit=return validate(this){>}
<input type=text name=sort_order[] value= value_from_db />
<input type='submit' />
<{/form}>
}
以下是Javascript验证功能
{<}script language="javascript1.2"{>}
{function} validate(obj)
{
var x = obj.elements['sort_order'].length;
var check = false;
for(var i =0; i <x; i++)
{
var array = Array();
array = obj.elements['sort_order'];
var num= array[i];
if(!isInteger(num.value))
{
check = true;
}
}
if(check)
{
alert('Please enter a valid sort number');
return false;
}
return true;
}
function isInteger(val)
{
if(val==null)
{
return false;
}
if (val.length==0)
{
return false;
}
for (var i = 0; i < val.length; i++)
{
var ch = val.charAt(i)
if (i == 0 && ch == "-")
{
return false;
}
if (ch < "0" || ch > "9")
{
return false;
}
}
return true;
}
</script>
问题是当我的sort_order []文本字段的值形式有多于1的值时,验证工作正常但是当我在sort_order []中只有一个值时它失败了 请帮忙
答案 0 :(得分:1)
问题是当输入字段名称被赋予数组时,即如果sort_order []只包含一个元素,则在javascript中它不被视为Array对象。所以这就是我接收的值为null的原因我已经检查了那里的值是否为null然后将其视为单个元素然后它工作正常。 -
答案 1 :(得分:0)
默认情况下保持检查值为true,如果一个验证也失败,则将其设为false
var check = false;
for(var i =0; i <x; i++)
{
var array = Array();
array = obj.elements['sort_order'];
var num= array[i];
if(!isInteger(num.value))
{
check = true;
}
}
要检查整数值,您可以使用parseInt(val)