Onkeyup,从文本框中获取值,更新另一个文本框,不工作
onkeyup, get value from textbox, update another textbox, not working
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
不是<input>
元素的有效type
。虽然未知类型默认为text
,它可能在某种程度上搞砸了js(也许类型属性不与未知类型正确工作),并将其更改为text
似乎工作得很好,正如您在此jsbin中看到的:http://jsbin.com/xakoxeyi/1/
我对为什么发生这种情况的最好猜测是使用element.type
对未知类型不起作用,所以它没有值textbox
,尽管这就是html所说的。解决这个问题的最好方法是将所有内容改为text
(如上所述),但另一个好方法是,而不是使用collection[x].type
,使用collection[x].getAttribute('type')
,因为使用getAttribute
总是给你HTML属性
就markassoftware所说的进行扩展:
如果您选择使用getAttribute
获取属性type
,那么您的代码将正常工作。
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].getAttribute('type').toUpperCase() == 'TEXTBOX') {
collection[x].value = datatext;
}
}
}
JSFiddle: http://jsfiddle.net/MSTUe/
所以,我的猜测是在幕后,未知类型被设置为text
输入,但是如果需要,您仍然可以使用textbox
查询输入。可能是针对那些浏览器可能不支持的全新HTML5输入(如color, datetime-local, week等)。
相关文章:
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- 如何将键入的文本从一个输入类型的文本复制到另一个
- 使用javascript将两个文本框值相加到表中的另一个文本框中
- 在文本上方标记另一个文本
- jQuery将文本从span标记复制到另一个span标记
- 从id标记中的文本进行检查,并将类添加到另一个标记中
- 它在另一个函数中嵌套后不会输出文本
- 如何通过 JS 将内容从一个表单中的一个文本框复制到另一个表单中的另一个文本框
- 使用Javascript从一个文本区域逐行解析.subsr(0,6)到另一个文本区
- 用户在文本框中输入一个数字,并根据使用 PHP 输入的数字重定向到另一个网页
- 如何使用jquery对具有相同类的文本框的值求和并将其放入另一个文本框中
- 使用 jquery 将行值设置为另一个文本
- 从一个文本框执行代码,并在另一个文本框中以 HTML 显示输出
- 内容可编辑-根据类型从一个跨度到另一个跨度克隆文本
- 使用php使用href链接将输入的文本框值传递到另一个页面
- 当文档准备就绪时,将数据从一个文本框复制到另一个
- jQuery-如何使var文本可点击,该文本放置在由更多元素组成的另一个var中(var,checkbox)
- 如何在MVC3剃刀中将文本框值复制到另一个文本框中
- 更改一个文本框的值,与另一个具有比例的文本框值进行比较