使用DOM表单名中的变量
Using a variable in the form name of 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
,因为在完整的应用程序中有许多表单具有相同的输入名称(例如,15个表单每个都有一个"b_user"输入)。这主要是为了让浏览器的自动完成功能可以在所有这些浏览器上运行(对我来说这只是一个脚本,所以它不需要很漂亮,只要它能工作)。
不管它的价值是什么,那里的alert
工作得很好。我只是不知道如何构建下一行,因为我能在网上找到的所有示例都是关于在输入id上使用变量而不是表单id。
document.forms[formName].b_user.value = "Hello!";
// ^ This is how you'd access it.
jsFiddle。
如前所述,id必须是唯一的。然而,name
并不一定是。把你的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';
你想要这样的东西吗
<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>
工作本对于id,我首先尝试使用此代码通过id
访问表单document[ "formID" ]; // returned undefined
然而,当我使用下面的代码时,它返回了正确的形式
window[ "formID" ]; // returned form element
不确定这是否是最佳实践。无论如何,这是我最终得到的代码。
var entered = 1139;
var formID = "updatenotes_" + entered;
window[formID].b_user.value = "Hello!";
这里的小提琴
相关文章:
- Ionic:AngularJS变量未使用$scope更新DOM
- 变量中的交叉DOM
- dom元素与javascript变量的绑定
- 将变量和DOM元素分别传递给jquery
- 如何使用cheerio(类似jquery的选择器,但没有dom)生成javascript变量的内容
- 当附加到DOM时,可以将变量与字符串连接起来吗?它能处理逃跑吗
- C#WebBrowser控件-使用DOM创建和修改javascript变量,然后使用Applet读取它
- 如何在 javascript 中存储 dom 元素的变量
- jQuery - 检查变量是否为 dom 元素
- 带有类的 DOM 树元素,它们是全局变量吗?
- Javascript 和 JQuery dom 全局变量范围
- 尝试在不使用 jQuery dom ready 函数的情况下传入变量
- 如何反转 JavaScript 变量中 HTML DOM 元素的顺序
- 为什么通过缓存变量访问 DOM 更快
- 创建一个数组,而不是一个从 dom 获取的值变量 使用 jQuery
- 在 DOM 中构建全局变量
- SVG DOM 使用变量来定义对象属性
- 动态变量从 PHP 插入到 DOM 中.在将该变量从 DOM 传递到 Javascript 时遇到问题
- 当 DOM 更改时,使用最后一个选择器更新变量
- JS中的未声明变量自动拾取DOM对象