日期:2014-05-17  浏览次数:20708 次

关于自增表单验证不能为空的问题,已经纠结两天了~~~

//该模块用来增加一个text跟一个select,option从数据库中取出,可以正常运行
var newItemNumber = 1;//用来记录条数的数量
function additem(id)
{
   var row,cell,str;
   row = document.getElementById(id).insertRow();
   if(newItemNumber <=6 )
   {
   if(row != null )
   {
cell = row.insertCell();
cell.innerHTML="<tr><td><input name=\"intext" + newItemNumber + "\" type=\"text\" maxlength=\"8\" /><select name=\"item" + newItemNumber + "\" ><option selected=\"selected\" value=\"\">请选择隶属分类...</option><?php $i = 1; while($rs = mysql_fetch_array($result)){ ?><option value=\"<?=$i++?>\"><?=$rs[name]?></option><?PHP }?></select></td></tr> ";
document.getElementsByName("totalNumber")[0].value = newItemNumber++;
   }
   }
   else
   {
   alert("最多同时添加六条记录。");
   }   
}


<!-- 表单部分 -->

<table id="tb"></table>
<input name="button" type=button onClick='additem("tb")' value="添加>>">
<input type="hidden" name="totalNumber" value="">
<input type="button" value="请在提交之前点击此按钮确认数据" id="vrify" onClick="check()">
<input type="submit" id="submit" value="提交" disabled="disabled">
</form>


//该部分用来验证表单中select不能为空,不验证text
function check(){ 
 var n = 1 ;
 var p = newItemNumber - 1;//newItemNumber记录有多少个select
 var x;
 for(var m = 1 ; m <= p ; m++)
 {
x = "item" + m;//alert(x);能正常显示
n = n * document.getElementByName(x)[0].value.length ; //alert(n);无法显示

 }
 if(n == 0) //程序未能执行此if语句
 { 
document.getElementById("submit").disabled = true;
alert("您的记录尚未选择分类");
 } 
 else 
 { 
document.getElementById("submit").disabled = false;  
 }
 
 }


下面是效果图:

------解决方案--------------------
n = n * document.getElementsByName(x)[0].value.length ; //alert(n);无法显示