2012-03-23 5 views
1

私は、ドロップダウン選択リスト内の選択されたオプションから値を取得し、それをオブジェクトに割り当てるスクリプトを作成していました。私が持っている唯一の問題は、それは私がnullオブジェクトを持っていると言っているということです。次のように通常のJavaScriptを使用して選択値を取得するDOM

の.jsは次のとおりです。

var s = document.getElementById('mode'); 
alert(s.options[s.options.selectedIndex].value); 
function selectValue(){ 

    yo.newSelect(s.options[s.options.selectedIndex].value); 
    return true; 
} 

次のようにHTMLは次のとおりです。

<div id="text_editing"> 
     <form action="javascript:;" method="post" onsubmit="editHomePage()"> 
     <select name="CYD" id="mode" onchange="selectValue()"> 
     <option value="Home">Home</option> 
     <option value="About">About</option> 
     <option value="Contact">Contact</option> 
     </select> 
<textarea name="sexyText" row="500" col=500">  
</textarea> 
<input value="submit" name="text_submit" type="submit" onclick="selectValue()"> 
     </form> 

私はただのJSでのソリューションを探しています。このような小さなサイトでjQueryを使用することには興味がありません。

+0

1)あなたはこれをテストしているものをブラウザ上で? - 2)NULLオブジェクトはアラートボックスの結果ですか? –

+0

Chrome。アラートボックスはまったくポップアップしません。私は火かき棒ライトからこの情報を得ています。 – VinceOmega

答えて

2

、あなたは簡単に書くことができます(選択した複数の複数の選択のためにそれほど適していません)最初に選択されたオプションの値を返します

alert(s.value); 

を。機能で、その後

<input type="submit" onclick="selectValue(this)"> 

:あなたが行うことができ、あなたのリスナーからちなみに

+0

あなたが言及した最初の方法は、別のスクリプトではなく、数字を使って行っていました。私はちょうどそれを行うかもしれない。私はあなたが言及した他の方法を使ってみましたが、それは私に "フォーム"が定義されていないと言っただけです。どの時点で私は手を振り、前と同じように自分の価値観を作りました。 – VinceOmega

+0

フォームのすべてのフォームコントロールには、フォームを参照する*フォーム*プロパティがあります。フォームにない場合は、有用な値はありません。 – RobG

1

最初は、選択肢が選択されていないようです。したがって、ページが最初にロードされるときにs.options[s.options.selectedIndex]はnullになります。

Firefox用のFirebugプラグインを使用してコードを実行することをおすすめします。デバッガを使用してこれらの種類の問題を簡単に特定できます。すべてのオプションが値を持っている場合は

+0

私は実際にChrome用に持っています。私はあなたが言ったことを試しました、つまり、デフォルトで 'selected =" selected ""のオプションの1つを作ることですが、どちらもうまくいきませんでした。 – VinceOmega

+0

Firebugを使用すると、どのオブジェクトがnullであるのか、selectedIndexの値は – RMorrisey

+0

であることがわかります。ChromeとFirefoxの両方でFirebugのDOMタブをチェックしたところ、sがnullであることがわかりました。私はそれに文字列の値を入れる方法を見つけ出していないので、値の数値を作り、RobGの助言に従った。両方のおかげで! – VinceOmega

関連する問題