JAVASCRIPT数组表单检查问题

| |
| 2008/04/08 00:09 | bob
      前几天工作中遇到个需要验证数组表单不为空的问题,在网上搜索了多时,未找到正确解决办法,只能自己摸索,研究了一会后问题终于解决,现把关于数组表单验证的一些心得记下来,希望能给别人一些帮助

问题一:某一页面需要检查其表单数组输入框全不得为空

这样的问题比较简单,网上提供的一些其他人的心得也大多是解决这个问题的

for(i=0;i<quantity.length;i++)
  {  
     var item=document.quantity[i];
  if( (item.value)=="" || (item.value)==null )
       {  
          alert( "'" + quantity[i] + "'不能为空");  
         return false;  
      }
   }


对于表单中,只需要将表单记为
<input   type="text"  name="quantity[{%$smarty.foreach.product_list.iteration%}]" value="" maxlength="4" size="5">

即可

这样的一个判断就可以解决问题

问题二:表单数组是动态生成的,元素个数有可能为1,也有可能为0,我们知道,当数组长度为0时,quantity.length也就不存在了,
所以上述方式显然不适合

解决办法:

for (var i=0; i<form_payway_info.length;i++)
  {
    if (form_payway_info.elements[i].type=="text" )
      if( form_payway_info.elements[i].value=="" || form_payway_info.elements[i].value==null  )
      {
          alert( "'" + quantity[i] + "'不能为空");  
                                                                   return false; 
                                                 };
          
  }


问题三:该页面中除了quantity以外,还有其他输入框,且quantity在所有提交中顺序不确定

解决办法:显然上面的方式已经行不通,这时候可以使用input的id属性,
表单记中应加如id属性,如下:
<input  id="quant"  type="text"  name="quantity[{%$smarty.foreach.product_list.iteration%}]" value="" maxlength="4" size="5">

验证代码如下:

var obj = document.all['quant'];
  
  for (var i=0; i<obj.length;i++)
  {
    if (obj[i].type=="text" )
    
      if( obj[i].value=="" || obj[i].value==null  )
      {
          alert( "'" + quantity[i] + "'不能为空");  
                                                                   return false; 
                                                 };
            
  }
  if (!obj.length)
  {
      if(form_payway_info.quant.value =="" ||form_payway_info.quant.value==null  )
      {
          alert( "'" + quantity[i] + "'不能为空");  
                                                                   return false; 

            };
    
  }


      12点了该睡觉了,思路不太清晰,太困了,下次想到再来补充吧


请给这篇日志评个分吧!

16 分数: 5.3/10 (4 votes 票)

工作 » LAMP | 评论(3) | 引用(0) | 阅读(1402)
一个人吃饭真郁闷75
holy
2008/04/08 12:47
知道了#17
xiamingran Email
2008/04/08 08:38
早点休息撒,每天都那么晚,心疼!47
holy
2008/04/08 08:32
分页: 1/1 第一页 1 最后页
发表评论
 网址
 电邮
  密码 游客无需密码
 昵称  *  [注册]
               

 
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我