在JSP中,做了个左右框条目转换的功能,由于左边和右边分别有几个框,而且是动态生成的框的个数,所以设计到框的name问题,即必须为动态的,我的做法
JSP中这样写的
其中var selectedRyX = "splcForm.selectedRy" + rid;的rid是我传过来的值,splcForm是form名,这样就拼接成了动态的字符串,如:splcForm.selectedRy1、splcForm.selectedRy2、splcForm.selectedRy3
然后用eval(selectedRyX)方法,让字符串去执行splcForm.selectedRy1等等
关于eval()函数用法,以下转自其他地方
eval 方法
检查 JScript 代码并执行.
eval(codeString)
必选项 codestring 参数是包含有效 JScript 代码的字符串值。这个字符串将由 JScript 分析器进行分析和执行。
说明
eval 函数允许 JScript 源代码的动态执行。例如,下面的代码创建了一个包含 Date 对象的新变量 mydate :
eval("var mydate = new Date();");
传递给 eval 方法的代码执行时的上下文和调用 eval 方法的一样.
function doAdd(rid){
var str = getValue(rid);
var totals = str.split(";");
var numbr = totals.length;
var selectedRyX = "splcForm.selectedRy" + rid;
for(var i=0; i<numbr; i++){
var ids = totals[i].split(",");
判断是否已存在
if(isHave(rid,ids[0])) {
eval(selectedRyX).options[eval(selectedRyX).length] = new Option(ids[1] , ids[0]);
}
}
}
JSP中这样写的
<select class="2" name="selectRy<s:property value="rid"/>" ...>
...
</select>
其中var selectedRyX = "splcForm.selectedRy" + rid;的rid是我传过来的值,splcForm是form名,这样就拼接成了动态的字符串,如:splcForm.selectedRy1、splcForm.selectedRy2、splcForm.selectedRy3
然后用eval(selectedRyX)方法,让字符串去执行splcForm.selectedRy1等等
关于eval()函数用法,以下转自其他地方
eval 方法
检查 JScript 代码并执行.
eval(codeString)
必选项 codestring 参数是包含有效 JScript 代码的字符串值。这个字符串将由 JScript 分析器进行分析和执行。
说明
eval 函数允许 JScript 源代码的动态执行。例如,下面的代码创建了一个包含 Date 对象的新变量 mydate :
eval("var mydate = new Date();");
传递给 eval 方法的代码执行时的上下文和调用 eval 方法的一样.