select
要素を操作するとき、混乱があるようです。
適切なマークアップがあることを確認してください。
<select id="contServer">
<option value="0">Zero</option>
<option value="10">Ten</option>
<option value="100" selected>Hundred</option>
<option value="1000">Thousand</option>
</select>
要素のvalue
属性に値を保存します。option
その属性が存在しない場合は、開始タグと終了タグvalue
のテキストになります。option
option
次に、上記のような「整数」値は実際には整数ではなく、文字列です。そのため、数学に使用する前に解析する必要があります。以下の簡単なウォークスルーでは、選択した値を取得し、それを整数に解析するプロセスについて説明します。熱心に読んでください。多くの混乱が解消されると思います。
// We now have a reference to the select object (with all of its object members)
var cServer = document.getElementById("contServer");
// Now we have a reference to all of the options within the select object
var options = cServer.options;
// Now a reference to the selected option
var selected = options[ cServer.selectedIndex ];
// And now the value of the selected option
var selValue = selected.value;
// Let's get the type of this value
var selType = typeof selValue;
// Convert this String to an Integer
var iSelType = parseInt( selType, 10 );
// We can also get the value from the select object itself
var cServerVal = cServer.value;
// But we would still need to parse it to an integer
var iCServerVal = parseInt( cServerVal, 10 );
あなたの問題NaN
は、数値以外の値を解析しようとしたことが原因だと思います。たとえば、単語を整数に解析しようとしました。
parseInt( "Hundred" );
結果は になりますNaN
。これはおそらくあなたに起こったことです。option
タグ間、またはvalue
各タグの属性内に番号を保存してくださいoption
。