我有一个脚本如下
document.getElementById('lan').innerHTML=lan;
document.getElementById('city').innerHTML=city;
document.getElementById('text1').value=city+'|'+lan;
变量 lan 和 city 包含文本,例如“kalmar”。
我想要做的是获取这两个变量的内容并将它们组合起来,并将组合后的字符串设置为表单字段的值,以便能够使用表单的常规提交功能将其保存到数据库.
在 Chrome 和 FF 中它工作得很好,但在 IE 中却不行(惊讶)。
如果我执行 alert(document.getElementById('text1').value)
来查看它保存的值,IE 仅打印
[object]
关于发生了什么/我可以做些什么来使其兼容有任何线索吗?
这是一个很大的文档,但我在这里剪切并粘贴了要点:
用于接收最终组合值的 HTML 元素
<input type='hidden' name='text1' id='text1' value=''>
HTML 元素(链接)为上述 HTML 元素赋值:
<div id="searchResult"><a href="javascript:populateFields('Kalmar','Kalmar');">Kalmar i Kalmar</a><br></div>
function populateFields(lan,city)
{
document.getElementById('lan').innerHTML=lan;
document.getElementById('city').innerHTML=city;
document.getElementById('text1').setAttribute('value',city+'|'+lan)
document.getElementById('save_button').style.zIndex='auto';
alert('LAN: '+document.getElementById('lan').innerHTML);
alert('CITY: '+document.getElementById('city').innerHTML);
alert('TEXT1: '+document.getElementById('text1').value);
}
此外 -alert() 检查现在打印正确的值(即 Kalmar|Kalmar),但表单仍然不保存我已将 text1 字段设置为的值!
最佳答案
在 IE 中,您可以使用 setAttribute('value',city+'|'+lan)
。
希望它能满足您的需求。
关于javascript - IE 处理 javascript 对象值的方式不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8750087/