当你知道但很难弄清楚时,这似乎很容易。代码应该是不言自明的:
<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上使用变量。
答案 0 :(得分:0)
document.forms[formName].b_user.value = "Hello!";
// ^ This is how you'd access it.
答案 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 强>