我试图通过使用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未定义”而且没有更多。
任何帮助将不胜感激。我已经尝试明确声明每个文本字段:
var text1 = document.getElementById("hiddenfield_id").value;
var joinedvalues = text1+text2+ etc.
哪个也不起作用。我是一个php开发人员,JS不是我强大的套件......任何帮助都是非常欢迎。
答案 0 :(得分:5)
使用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;
}
答案 1 :(得分:0)
在IE的IE冒号可以转换为下划线,您可以使用此方法:
function convertNameToId(strId)
{
reg = /:/g;
return strId.replace(reg, "_");
}
并使用:
document.getElementById(convertNameToId(strName))