在DOM的表单名称中使用变量

时间:2013-06-04 09:00:08

标签: javascript variables dom

当你知道但很难弄清楚时,这似乎很容易。代码应该是不言自明的:

<html>
<head>
<body>

<form id='updatenotes_1139' action=index.php method=POST>
<input size=20 type='input' id='b_user' value="Default value">
<input type=submit>
</form>

<script>
var entered = 1139;
var formName = "updatenotes_"+entered;
//alert(formName);  // Displays "updatenotes_1139"
document.forms[formName]b_user.value = "Hello!";
</script>
</body>
</html>

基本思想是能够告诉JavaScript通过变量编辑哪种表单。我不能只使用GetElementByID因为在完整的应用程序中有许多具有相同输入名称的表单(例如,每个表单都有“b_user”输入的15个表单)。这主要是因为浏览器的自动完成功能将在所有这些功能中运行(对我来说这只是一个脚本,因此它不一定非常有效)。

对于它的价值,alert有效。我只是不知道如何构建下一行,因为我在网上找到的所有示例都是关于在输入id而不是表单id上使用变量。

4 个答案:

答案 0 :(得分:0)

document.forms[formName].b_user.value = "Hello!"; 
                     // ^ This is how you'd access it.

jsFiddle.

答案 1 :(得分:0)

如前所述,ID必须是唯一的。但是,name不一定是<input size=20 type='input' name='b_user' value="Default value"> 。将您的HTML更改为:

id

(或保留name属性,但您需要var form = document.getElementById(formName); var b_user = form.getElementsByName('b_user')[0]; b_user.value = 'Hello';

然后你可以这样做:

{{1}}

答案 2 :(得分:0)

使用id我首先尝试使用此代码通过其ID

访问表单
document[ "formID" ]; // returned undefined

但是,当我使用以下代码时,它返回了正确的表单

window[ "formID" ]; // returned form element

不确定这是否是最佳做法。无论如何,这是我最终得到的代码。

var entered = 1139;
var formID = "updatenotes_" + entered;
window[formID].b_user.value = "Hello!";

小提琴here

答案 3 :(得分:0)

你想要这样的东西

<html>
<head>
<body>

<form id='updatenotes_1139' action=index.php method=POST>
<input size=20 type='input' id='b_user' value="Default value">
<input type=submit>
</form>

<script>
var entered = 1139;
var formName = "updatenotes_"+entered;
//alert(formName);  // Displays "updatenotes_1139"
var myForm = document.forms[formName];
  console.log(myForm);
  myForm.getElementsByTagName('input')[0].value = "Hello!";
</script>
</body>
</html>

<强> Working BIN