写两个通用函数统一javascript获取form数据的方式

这段时间,经常用javascript获取各种form中的提交数据。考虑到代码的一致和逻辑的简化,建立如下两个js函数用统一的方式获取form中的数据.根据Formid 和 Inputid 获得数据

函数调用方式如下德例子.

获得数据:

var  CharString=getValue(formid,'CharString');
var TestCondition=getValue(formid,'TestCondition');
var Hvalue=getValue(formid,'Hvalue');
var Lvalue=getValue(formid,'Lvalue');
var HunitID=getValue(formid,'HunitID');
var LogicTerm=getValue(formid,'LogicTerm');

设置数据
 if(CharString)  setValue(formid,'CharString',CharString);

Form的形式如下:

测试条件<textarea name="TestCondition" class="inputSingle" id="TestCondition" ></textarea>
<!--<textarea name="XMLDATA" class="inputSingle" id="XMLDATA" ></textarea>-->
<br>

低值数据<input class="inputLow" name="Lvalue" id="Lvalue"  require="false" dataType="Double" Msg="低值数据必须为数值类型的数据"><br>
操作符号<select name="LogicTerm" id="LogicTerm">
<option value="~">之间</option>
<option value="=">等于</option>
<option value=">=">大于等于</option>
<option value="<=">小于等于</option>
<option value=">">大于</option>
<option value="<">小于</option>
<option value="">无</option>
</select><br>


如上,所有不同类型的input的取值和设值都是一致的。注意,每个Input都必须有id属性,form也是

两个支持js函数如下:

//忽略类型,对Form中的Input数据设置值
function setValue(formid,inputid,strvalue) {
 var l = new Number();
 if (!strvalue) return ;
 if (strvalue=='') return ;
 eval('l = document.' + formid + '.elements.length')
 for (var i = 0; i < l; i++) {
  var tempid = new String();
  var temptype = new String();
  eval('tempid= document.' + formid + '.elements[i].name;');
  eval('temptype= document.' + formid + '.elements[i].type;');
  if (tempid==inputid){
   if (temptype=='text'){
    eval('document.' + formid + '.elements[i].value=strvalue;');
   }else if (temptype=='textarea'){
    eval('document.' + formid + '.elements[i].value=strvalue;');
      }else if (temptype=='hidden'){
    eval('document.' + formid + '.elements[i].value=strvalue;');
   }else if(temptype=='select-one'){
    var optionLen=new Number();
    eval('optionLen=(document.' + formid + '.elements[i].options.length)');
    for(var j=0;j<optionLen;j++){
     eval('if (document.' + formid + '.elements[i].options['+j+'].value==strvalue) document.' + formid + '.elements[i].selectedIndex='+j+';');
    }
   }else if(temptype=='radio'){
     eval('if (document.' + formid + '.elements[i].value==strvalue) document.' + formid + '.elements[i].checked=true;');
   }else if(temptype=='checkbox'){
    var strvalues=(','+strvalue+',').split(',');
    for(var j=0;j<strvalues.length;j++){
     if (!(strvalues[j]=='')) {
      eval('if (document.' + formid + '.elements[i].value==strvalues[j] ) document.' + formid + '.elements[i].checked=true; ');
     }
    }   
   }else if (temptype=='select-multiple'){
    var strvalues=(','+strvalue+',').split(',');
    var optionLen=new Number();
    eval('optionLen=(document.' + formid + '.elements[i].options.length)');
    for(var k=0;k<optionLen;k++){
     for(var j=0;j<strvalues.length;j++){
      eval('if (document.' + formid + '.elements[i].options[k].value==strvalues[j]) document.' + formid + '.elements[i].options[k].selected=true')
     }
    }
   }
  }
 }
}
//忽略类型,对Form中的Input数据取值
function getValue(formid,inputid) {
 var tempvalue = new String();
 var l = new Number();
 eval('l = document.' + formid + '.elements.length')
 for (var i = 0; i < l; i++) {
  var tempid = new String();
  var temptype = new String();
  eval('tempid= document.' + formid + '.elements[i].name;');
  eval('temptype= document.' + formid + '.elements[i].type;');
//alert(tempid);
//alert(temptype);
  if (tempid==inputid){
   if (temptype=='text'){
    eval('tempvalue= document.' + formid + '.elements[i].value;');
   }else if (temptype=='textarea'){
    eval('tempvalue= document.' + formid + '.elements[i].value;');
      }else if (temptype=='hidden'){
    eval('tempvalue= document.' + formid + '.elements[i].value;');
   }else if(temptype=='select-one'){
    eval('tempvalue=document.' + formid + '.elements[i].options[document.' + formid + '.elements[i].selectedIndex].value;');
   }else if(temptype=='radio'){
    eval('if(document.' + formid + '.elements[i].checked) tempvalue=document.' + formid + '.elements[i].value;');
   }else if(temptype=='checkbox'){
    var checkValue=new String();
    checkValue="";
    eval('if (document.' + formid + '.elements[i].checked==true) {checkValue=document.' + formid + '.elements[i].value}');
    if(checkValue==''){
    }else{
     if (tempvalue==''){
      tempvalue+=checkValue;
     }else{
      tempvalue+=','+checkValue;
     }
    }  
   }else if (temptype=='select-multiple'){
   //计算Option的个数
   //根据个数循环检测数值,并
    var optionLen=new Number();
    eval('optionLen=(document.' + formid + '.elements[i].options.length)');
    for(var j=0;j<optionLen;j++){
     var checkValue=new String();
     checkValue="";
     eval('if (document.' + formid + '.elements[i].options[j].selected) checkValue=(document.' + formid + '.elements[i].options[j].value);');
     if(checkValue==''){
     }else{
      if (tempvalue==''){
       tempvalue+=checkValue;
      }else{
       tempvalue+=','+checkValue;
      }
     }
    }
    //循环检查数据
   }
  }
 }
 return tempvalue;
}

 

 

转载于:https://www.cnblogs.com/China-Dragon/archive/2009/11/07/1598002.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值