javascript - onkeyup,从文本框获取值,更新另一个文本框,不起作用

标签 javascript

这是 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/

相关文章:

javascript - 如何在 window.open 函数中写一个 javascript 变量

javascript - 如何在不复制 javascript 功能的情况下创建多个音频播放器(每个播放器包含不同的歌曲)?

javascript - 在 JavaScript 中保留多余的空格

javascript - React Tutorial 历史 map (step, move)

javascript - jQuery隐藏div点击外部div不包括其子div

javascript - Three.js 使用 raycaster.intersectObject 选择 Object3D 的子级

javascript - JQuery/JavaScript中的回调

javascript - Angular.js - 向指令发出周期性事件

javascript - 设置超时函数

php - CakePHP 和 Twitter Bootstrap 工具提示