2012-01-05 10 views
1

私はIEのJavaScriptのオブジェクト値が異なっていますか?

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

変数LAN、市は、テキスト、例えば「カルマル」を含む以下のようにスクリプトを持っています。

私がしたいのは、フォームの通常の送信機能を使用してフォームフィールドの値になるように、これらの2つの変数の内容を結合して組み合わせた文字列を設定することですデータベース。

ChromeとFFでは完全に動作しますが、IEでは(驚き)動作しません。 私はそれはIEのみ

[object] 

私はそれを両立させるために何ができるか/何が起こったかについてどのような手掛かりを印刷し保持しているどのような値を参照するalert(document.getElementById('text1').value)をすれば?

それは大きな文書だが、私はここに必需品カット&ペースト:HTML要素以上に値を代入するHTML要素(リンク)

<input type='hidden' name='text1' id='text1' value=''> 

最終合計値を受け取るために

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を見ると便利です。 –

+0

'lan'と' city'はどうやって作りますか? –

+0

は "text1"タイプのテキストの入力フィールドですか?他の2つのタイプは何ですか? – stu

答えて

0

私はここにいくつかの問題があることを発見しました。

まず、関数populate_fieldsは()ドキュメント内の一部のHTML要素と同じ名前のローカル変数を持っていました。 IEはそれが好きではないので、変数に格納された値を読み込もうとしたときに[オブジェクト]が表示されます(同じ名前のHTML要素/ DOMオブジェクトが既に存在していたため、関数変数が宣言されていない)。

ことを整理してたら、私はまた、フォーム項目は(私は、アラートを使用してチェック)正しい値を受けていたようだったのにフォームは、私の値を保存していないことに気づきました。 私はネストされたフォームを持っていたことがわかります。

<form> 

<form> 
</form> 

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

、それはIEは完全に最後のフォームフィールドを無視し...他のブラウザのどれも問題がなかった何らかの理由で...注目の人たちのための

感謝を作りましたよ!

0

IEではsetAttribute('value',city+'|'+lan)を使用できます。

あなたのニーズに合っていますか?

関連する問題