这让我疯了,我相信这既可能也很容易做到。
我有一个页面,上面有一大堆动态创建的表单。在我的一个函数中,我需要访问其中一个表单,所以我在变量中传递表单的名称。
然后我需要使用文档树访问该表单的名称。
但是,当我输入变量时,它假定变量的名称是表单的名称。
所以这不起作用:
function myAwesomeFunction(nameOfForm)
{
var selection = document.nameOfForm.nameOfInput.selectedIndex;
}
所以我环顾网络,看到我需要使用括号表示法,但这也不起作用:
function myAwesomeFunction(nameOfForm)
{
var selection = document[nameOfForm].nameOfInput.selectedIndex;
}
我也试过了一些报价行动:
function myAwesomeFunction(nameOfForm)
{
var selection = document['nameOfForm'].nameOfInput.selectedIndex;
}
......但没有快乐。
那么,我哪里错了?
对于奖励积分......如果表单的名称和特定输入的名称都是动态的,该怎么办?什么?
function myAwesomeFunction(nameOfForm, nameOfInput)
{
var selection = document[nameOfForm][nameOfInput].selectedIndex;
}
答案 0 :(得分:1)
在表单对象中查找它们 - 这不起作用,因为它是一个数组而不是一个对象。
使用document.getElementsByName
function myAwesomeFunction(nameOfForm, nameOfInput)
{
var selection = document.getElementsByName(nameOfForm)[nameOfInput].selectedIndex;
}
甚至更好,在表单上设置id attribuite并使用document.getElementById
查找表单
答案 1 :(得分:0)
尝试使用document.getElementById(nameOfForm)
(如果您在表单上也有ID)...
如果您可以在页面中包含jQuery引用,则可以轻松执行以下操作(再次假设您在表单上有ID):
function myAwesomeFunction(nameOfForm, nameOfInput)
{
var form = $("form#" + nameOfForm);
var input = $("#" + nameOfInput + ":input");
var selection = $(input).val();
}
答案 2 :(得分:-1)
function focusElement(formName,elemName){
var elem = document.forms [formName] .elements [elemName];
}
试试这个
formname是表单的名称,elemname是输入标签名称