1

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

<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,因为在完整的应用程序中有许多具有相同输入名称的表单(例如,15 个表单,每个表单都有一个“b_user”输入)。这主要是为了让浏览器的自动完成功能可以在所有这些上运行(它对我来说只是一个脚本,所以只要它工作它就不必很漂亮)。

对于它的价值,alert那里工作得很好。我只是不知道如何构造下一行,因为我可以在网上找到的所有示例都是关于在输入 id 上使用变量而不是表单 id。

4

4 回答 4

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

js小提琴。

于 2013-06-04T09:04:10.127 回答
0

如前所述,ID 必须是唯一的。但是,names 不一定是。将您的 HTML 更改为:

<input size=20 type='input' name='b_user' value="Default value">

(或保留id属性,但你需要name

然后你可以这样做:

var form = document.getElementById(formName);
var b_user = form.getElementsByName('b_user')[0];
b_user.value = 'Hello';
于 2013-06-04T09:05:05.203 回答
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!";

在这里提琴

于 2013-06-04T09:06:05.900 回答
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>

工作箱

于 2013-06-04T09:10:19.410 回答