for (var i=0;i<form.elements.length;i++) { if (form.elements[i].name.indexOf("txt_")!=-1) { //以“txt_”开头 var tmp=form.elements[i].name.replace("txt_","b_"); eval(var tmp=true) } } //行不?
var b_name=false;在form.elements[i].name为"txt_name"时, var tmp=form.elements[i].name.replace("txt_","b_"); 执行后tmp的值为"b_name", 执行 alert("tmp is "+tmp+" and eval(tmp) is "+eval(tmp)); 调试, 结果是"tmp is b_name and eval(tmp) is false",没错! 但b_name的值只能看不能改成true。
eval(tmp.value)=true
实际上是对每个txt_开头的控件都有相同的好几句逻辑要执行,当然这几句逻辑执行的结果是
b_???=true或false。问题说白了,就是根据一个字符串,声明(或同时定义)一个变量。好比说字符串是"b_name",则一个名为b_name的变量=true
if (form.elements[i].name.indexOf("txt_")!=-1) { //以“txt_”开头
var tmp=form.elements[i].name.replace("txt_","b_");
eval(var tmp=true)
}
}
//行不?
to awaysrain(绝对零度):eval(tmp).value="true" :(
eval("var tmp=true;") :(to cloudchen
eval(tmp.value)=true :(
var tmp=form.elements[i].name.replace("txt_","b_");
执行后tmp的值为"b_name",
执行 alert("tmp is "+tmp+" and eval(tmp) is "+eval(tmp)); 调试,
结果是"tmp is b_name and eval(tmp) is false",没错!
但b_name的值只能看不能改成true。