2011-09-17 11 views
0

何らかの理由で、このコードはIE9では動作しません(IEの他のバージョンを試すことはできませんでした)。試してみると、ChromeとFirefoxでうまくいきました。ドロップダウンアイテムを選択すると、テキストボックスに「未定義」というメッセージが表示されます。ドロップダウンメニューオプションを選択したときに複数のテキストフィールドを入力する必要があります

http://jsfiddle.net/pimvdb/RemPF/1/はありがとう.. Raam

は私がいただきました!間違って把握することはできませんよ、私はIE9で主に働いて、これは...すべてのヘルプは大幅に..

コードを高く評価されたかったです

答えて

0
  1. printColorAndGroupは、}で停止しません。
  2. オブジェクトは、配列ではなくキー/値のペアに使用する必要があります。
  3. オブジェクトにリテラル表記を使用できます。
  4. onchange関数の内部では、thisで選択を渡すことができます。だからselect.options[...]が可能でクリーナーです。
  5. 名前の代わりにIDを使用することもできますので、毎回[0]を心配する必要はありません。

改変されたバージョン:http://jsfiddle.net/pimvdb/RemPF/1/


これは、オブジェクトリテラル表記である:

var colors = { apple: "red", 
       grape: "purple", 
       milk: "white", 
       cheese: "yellow", 
       chicken: "white", 
       beef: "red" }; 

これはIDがどのように働くかである:

<input type="text" id="food_group" ...> 

そして、あなたは持つ要素を取得することができます:あなたが不足している

function printColorAndGroup(select){ 
var text = select.options[select.selectedIndex].value; 
... 
+0

ありがとうございました。ええ、中括弧を忘れました。申し訳ありません。あなたは非常に役に立ちます..ありがとうございました。 –

+0

ああ、IEで動作していないようですが、Chorme ..確かにNO、なぜ、それで私を助けることができましたか?私はIE 9で試したことがあります。 –

+0

@Raam:わからない、IE9で動作します。 – pimvdb

0

:次のJavaScriptと

<select name="food" onchange="printColorAndGroup(this)"> 

:これは、選択した作品を渡す方法です

document.getElementById('food_group') 

あなたの前にあなたの</script>タグ

function printColorAndGroup(){ 
    var text = document.getElementsByName('food')[0].options[document.getElementsByName('food')[0].selectedIndex].value; 
    document.getElementsByName('food_group')[0].value = groups[text]; 
    document.getElementsByName('food_color')[0].value = colors[text]; 
} 
関連する問題