2016-08-30 3 views
1

optionのいずれも属性selectedの値がtrueではない場合、選択ドロップダウンの値が間違った値を返しています。ドロップダウンを選択すると間違った値が返されるのはなぜですか?

以下は、chrome consoleのスクリーンショットです。

enter image description here

編集1: what選択ドロップダウンのjavascriptオブジェクトです。

編集2: enter image description herewhatの値が最初に選択されていないなど、画面でどのように見えるか

+1

「what」はどこですか?あなたのスクリーンショットの 'select'はその名前を持っていません。また、そのオプションを手動で選択し、その後に値が何かを確認しようとしましたか? – putvande

+0

私は自分の質問を更新しました。 –

+0

'What'は画面上にどのように見えますか?オプションは選択されていますか? – devnull69

答えて

2

attributeが選択されていない場合でも、依然として選択されたpropertyが存在する可能性があります。 (HTML)属性とそれに対応する(Javascript)属性には違いがあります。

この

What.options[17].selected 
true 

What.options[17].getAttribute("selected") 
null 

を試していない空のエントリを持つselect要素は常に手動またはコードによってそれをしなかったにも関わらず、自動的に選択されたそのいずれかのオプションを持っています。あなたの例では、オプション17が選択されているので、プロパティはtrueに設定されます。 の値が多値の場合、選択したオプションの値に変更されます。プロパティを変更すると、NOTがHTML属性に反映されます。

ブラウザは最初にHTMLを解析します。その解析タスク中に、プロセス内にあるすべての要素のDOMプロパティが読み込まれます。しかし、これらのプロパティを(手動または自動で)変更しても、HTML属性は変更されません。

関連する問題