在JSP中,做了个左右框条目转换的功能,由于左边和右边分别有几个框,而且是动态生成的框的个数,所以设计到框的name问题,即必须为动态的,我的做法
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 方法的一样. |
|
来自: thy > 《javascript》