写两个通用函数统一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" ></textarea>--><br>
低值数据<input class="inputLow" name="Lvalue" >无</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;}