2012-01-05 24 views
1

我有一个脚本如下IE had javascript javascript对象值不同?

document.getElementById('lan').innerHTML=lan; 
    document.getElementById('city').innerHTML=city; 
    document.getElementById('text1').value=city+'|'+lan; 

变量局域网和城市包含文字,例如“卡尔玛”。

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

在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);  
} 

而且 - 警报()检查现在打印正确的值(即卡尔马|卡尔马),但仍形式不保存,我文本1字段设置为TEH价值!

+3

看到HTML会很有帮助。 – 2012-01-05 21:31:20

+0

你如何创建'lan'和'city'? – 2012-01-05 21:31:33

+0

是“text1”文本类型的输入字段?其他两种类型是什么? – stu 2012-01-05 21:31:58

回答

0

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

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

一旦整理出来了,我也意识到表单并没有保存我的值,尽管表单项目似乎已经收到了正确的值(我使用alert来检查)。原来,我有一个嵌套的形式,即。

<form> 

<form> 
</form> 

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

,这让IE完全无视过去的表单字段...对于没有任何其他浏览器的某些原因出现了问题......

感谢您的关注家伙!

0

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

希望它适合您的需求。