Там, кажется, некоторое замешательство при работе с 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>
Мы сохраняем наше значение атрибута из option
элементов value
. Если этого атрибута нет, то 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
.
При входе объекта в консоль, 'console.log', вы можете проверить объект. – xbonez
код, который у вас выше, должен выводить целое число или строку в javascript, вы говорите, что он выводит объект? – Huangism
Вы используете Javascript-библиотеку? Например, в extjs вы можете выполнить Ext.util.JSON.decode (document.getElementById ("contServer")); – Victor