2012-01-05 25 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)

希望它適合您的需求。