Javascript 订单表单-所有输入字段值均为0时发出JS警报

Javascript 订单表单-所有输入字段值均为0时发出JS警报,javascript,alert,Javascript,Alert,我正在做一个基本的订单。我试图实现的是让javascript在所有输入字段的值都为0时返回警报。 至少有1个输入必须填写大于0的值才能继续填写订购单。 我必须提到,产品列表/输入字段是动态生成的,因此它们的数量可能会有所不同 基本代码: <form name='packaging' action="packaging.php" method='post'> <? $result = mysql_query("SELECT * FROM packaging_items") or

我正在做一个基本的订单。我试图实现的是让javascript在所有输入字段的值都为0时返回警报。 至少有1个输入必须填写大于0的值才能继续填写订购单。 我必须提到,产品列表/输入字段是动态生成的,因此它们的数量可能会有所不同

基本代码:

<form name='packaging' action="packaging.php" method='post'>

<?
$result = mysql_query("SELECT * FROM packaging_items") or die(mysql_error());
                while($row=mysql_fetch_array($result)) {
echo "
<input type='text' style='width:20px'  name='$row[prodno]' id='$row[prodno]' maxlength='4' value="0" onblur="if (this.value == '') {this.value = '0';}" onfocus="if (this.value == '0') {this.value = '';}" onkeypress='validate(event)' >
";
}
?>

</form>

那么:

function validateForm(){
   var inputs =  document.getElementsByTagName('input');
   var noneZeroFound = false;
   for(var i=0;i< inputs.length;i++){
      var input = inputs[i]; 
      if(input.value != '0'){
         noneZeroFound = true;
         break;
      }
   }
   if(!noneZeroFound ){
      alert('MUST ENTER VALUE...');
      return false;
   }

   return true;
}

<form name='packaging' action="packaging.php" method='post' onSubmit="return validateForm">
函数validateForm(){
var inputs=document.getElementsByTagName('input');
var noneZeroFound=false;
对于(变量i=0;i
Javascript代码运行良好。我所要做的就是将onSubmit=“return validateForm”替换为onSubmit=“return validateForm()”——这样一个小细节。我想干什么就干什么。再次非常感谢

您可以使用或获取所有输入的列表,然后循环测试它们的值…+1。请注意,如果表单包含非文本输入,则需要测试循环中每个输入的类型。此外,您还可以简化直接从循环中的
if
语句返回false的函数,这样您就不需要
noneZeroFound
变量了。+1,我要更改的一件事也是
var inputs=document.forms['packaging'].getElementsByTagName('input')(抱歉,我的意思是从循环内部返回true。)不起作用。在测试版本中,我有14个产品,它们的值设置为0,所以我得到了14个,以此类推…尝试使用var inputs=document.forms['packaging'].getElementsByTagName('input');-毫无差别