Javascript按名称更改字段值
Posted
技术标签:
【中文标题】Javascript按名称更改字段值【英文标题】:Javascript change fields value by name 【发布时间】:2011-05-24 02:01:31 【问题描述】:我有一个表单,其中某些字段具有相同的元素名称。有没有办法改变所有同名字段的值?
【问题讨论】:
注意:如果它们是单选按钮,它们应该具有相同的名称。 【参考方案1】:您可以使用 JQUERY 做更简单的事情 示例:
html
<div id="form">
<input type="text" name="myinput" vale="yussan" />
</div>
js
var value = $('#form input[name=myinput]').val()
【讨论】:
【参考方案2】:1) 使用getElementsByName 将元素放入数组中。 2) 遍历数组并设置每个元素的值。
代码:
var els=document.getElementsByName("yourElementNameHere");
for (var i=0;i<els.length;i++)
els[i].value = "yourDesiredValueHere";
如果您只想更改表单中具有该名称的元素,请使用表单而不是document
,例如:document.getElementById("yourFormID").getElementsByName(...)
【讨论】:
getElementsByName
seems not to be supported by IE or Opera!
@Felix Kling:该页面显示为“不完整且不正确”(违反 W3C DOM2 规范),但它支持。
反正我不喜欢这种做法,太全球化了
@user205376:不完整和不正确听起来很像不要使用那种方法!imo。
@Felix Kling:查看 PPK 所概述的“不完整和不正确”的含义(此方法非常过时,并且在 W3C 采用之前是 IE 特定的 :-) 【参考方案3】:
样本表格
<form name="form1">
<input type="button" name="buttons" value="button1">
<input type="button" name="buttons" value="button2">
<input type="button" name="buttons" value="button3">
</form>
脚本
var form = document.form1; // form by name
var form = document.forms[0]; // same as above, first form in the document
var elements = form.buttons; // elements with same name attribute become a htmlCollection
for (var i=0; i<elements.length; i++)
elements[i].value = elements[i].value.replace("button", "buttoff");
http://jsfiddle.net/yGV3R/
【讨论】:
以上是关于Javascript按名称更改字段值的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JavaScript spread... 语法更改对象的一个字段,该字段属于数组并通过名称-值对访问?
将Button标签名称取为UILongPressGestureRecognizer,更改var并返回值为Button的标签
如何按字段值(即“原因”字段名称及其值可能是“垃圾邮件”、“裸露”等)对 Firebase Firestore 数据进行排序