这是 JavaScript:
function changeText(containerId) {
var datatext = document.getElementById('masterText').value;
var collection = document.getElementById(containerId).getElementsByTagName('INPUT');
for (var x = 0; x < collection.length; x++) {
if (collection[x].type.toUpperCase() == 'TEXTBOX')
collection[x].value = datatext;
}
}
这是 html
<input id="masterText" type="textbox" onkeyup="changeText('divGrid')"><br />
<div id="divGrid">
<input type="textbox"><br />
<input type="textbox"><br />
<input type="textbox"><br />
<input type="textbox"><br />
</div>
假设所有文本框的值都会改变,但事实并非如此。你知道错误是什么吗?
最佳答案
正如我在评论中所说,textbox
不是有效的 type
对于 <input>
元素。尽管未知类型默认为 text
,它可能以某种方式搞乱了 js(也许 type 属性不适用于未知类型),并将其更改为 text
似乎工作正常,正如您在这个 jsbin 中看到的:http://jsbin.com/xakoxeyi/1/
我对为什么会发生这种情况的最佳猜测是使用 element.type
不适用于未知类型,因此它没有值 textbox
,尽管 html 就是这么说的。解决此问题的最佳方法是将所有内容更改为 text
相反(正如我上面所说),但另一个好方法是,而不是使用 collection[x].type
,使用collection[x].getAttribute('type')
,如使用 getAttribute
始终为您提供 HTML 属性中的内容
关于javascript - onkeyup,从文本框获取值,更新另一个文本框,不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24153752/