IE以不同的方式处理javascript对象值?

IE以不同的方式处理javascript对象值?,javascript,internet-explorer,Javascript,Internet Explorer,我有一个脚本如下 document.getElementById('lan').innerHTML=lan; document.getElementById('city').innerHTML=city; document.getElementById('text1').value=city+'|'+lan; lan和city变量包含文本,例如“kalmar” 我想做的是获取这两个变量的内容并将它们组合起来,然后将组合后的字符串设置为表单字段的值,以便能够使用表单的常规

我有一个脚本如下

    document.getElementById('lan').innerHTML=lan;
    document.getElementById('city').innerHTML=city;
    document.getElementById('text1').value=city+'|'+lan;
lan和city变量包含文本,例如“kalmar”

我想做的是获取这两个变量的内容并将它们组合起来,然后将组合后的字符串设置为表单字段的值,以便能够使用表单的常规提交函数将其保存到数据库中

在Chrome和FF中,它可以完美地工作,但在IE(惊喜)中却不行。 如果我发出
警报(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);    
}

功能普及领域(局域网、城市) { document.getElementById('lan')。innerHTML=lan; document.getElementById('city')。innerHTML=city; document.getElementById('text1').setAttribute('value',city+'|'+lan) document.getElementById('save_button').style.zIndex='auto'; 警报('LAN:'+document.getElementById('LAN').innerHTML); 警报('CITY:'+document.getElementById('CITY').innerHTML); 警报('TEXT1:'+document.getElementById('TEXT1').value); }

另外-alert()检查现在打印正确的值(即Kalmar | Kalmar),但表单仍然没有保存我设置text1字段的值

在IE中,您可以使用
setAttribute('value',city+'|'+lan)


希望它能满足您的需要。

所以我发现这里有很多问题

首先,函数populate_fields()的局部变量与文档中的某些html元素同名。IE不喜欢这样,因此当我试图读取存储在变量中的值时,它打印了[object](因为已经有一个同名的html元素/DOM对象,我想我的函数变量从未声明过)

整理好后,我还意识到表单没有保存我的值,尽管表单项似乎收到了正确的值(我使用alert进行了检查)。 原来我有一个嵌套的表单,即

<form>

<form>
</form>

<input last inputfield of first form>
</form>

这使得IE完全忽略了最后一个表单字段。。。出于某种原因,其他浏览器都没有出现问题


谢谢大家的关注

查看HTML会很有帮助。如何创建
lan
city
?“text1”是文本类型的输入字段吗?另外两种类型是什么?请。你可以安装IE开发者工具栏直接戳这个对象看看它是什么。我猜它还包含另一个html元素,但正如其他人提到的,请提供html。