【问题标题】:populate hidden field from other text fields javascript从其他文本字段 javascript 填充隐藏字段
【发布时间】:2014-05-15 05:38:17
【问题描述】:

我正在尝试通过使用 javascript 连接其他文本字段来填充隐藏字段(没有 JQuery,只是普通的 javascript)。

我下面的代码在 Chrome 和 Firefox 中完美运行,但在 IE 8、9、10 中失效


Javascript

function buildhidden() {
var joinedvalues = textfield_id_1.value+textfield_id_2.value+textfield_id_3.value;
document.getElementById("hiddenfield_id").value = joinedvalues;
    };

html 输入文件

<input type="text" name="textfield_id_1" id="textfield_id_1" value="" maxlength="1" onKeyUp="buildhidden();">

隐藏字段

<input type="hidden" name="hiddenfield_id" id="hiddenfield_id" value="" />

在 IE 中,我得到 "textfield_id_1 is not defined" 没有更多。

任何帮助将不胜感激。我已经尝试明确声明每个文本字段:

var text1  = document.getElementById("hiddenfield_id").value;
var joinedvalues = text1+text2+ etc.

这也不起作用。我是 php 开发人员,而 JS 不是我的强项...非常欢迎任何帮助。

【问题讨论】:

  • 您能否提供更多代码或JSFiddle?当我在 IE8 中尝试时,这按预期工作,所以我认为您的问题可能出在其他地方?

标签: javascript html hidden populate


【解决方案1】:

使用document.getElementById('id here '),因为所有浏览器都不会将元素的 id 暴露给全局范围。

id.value // bad practice, not cross-browser
document.getElementById('id').value // good, cross browser

这样做:

function buildhidden() {
    var joinedvalues = document.getElementById('textfield_id_1').value + document.getElementById('textfield_id_2').value + document.getElementById('textfield_id_3').value;
    document.getElementById("hiddenfield_id").value = joinedvalues;
}

【讨论】:

  • 遵循这个建议 - 使用上述功能有效 - 绝对是范围问题
【解决方案2】:

在IE中Id的冒号可以转换为下划线,可以使用这个方法:

function convertNameToId(strId)
{
   reg = /:/g;
   return strId.replace(reg, "_");
}

并使用:

document.getElementById(convertNameToId(strName))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多