JavaScript - способ проверки, если выбрана опция тега <select> - PullRequest
4 голосов
/ 07 марта 2011

У меня есть тег выбора, и я хочу проверить, выбрана ли моли.

 <select name="Birth_Month">
    <option value="" SELECTED>- Month -</option>
    <option value="January">January</option>
    <option value="Fabruary">Fabruary</option>
    <option value="March">March</option>
    <option value="April">April</option>
    <option value="May">May</option>
    <option value="June">June</option>
    <option value="July">July</option>
    <option value="August">August</option>
    <option value="September">September</option>
    <option value="October">October</option>
    <option value="November">November</option>
    <option value="December">December</option>
</select>

Так сделайте это:

if (document.registration_form.Birth_Month.value === '') 
{
    alert('Please fill select Month!');
}

Но этот JavaScript для некоторых избранных работает, а для некоторых - нет.Очевидно, что при выборе «- Месяц -» он возвращает «- Месяц -« insted of »» (пустая строка).Что я сделал не так?Каков наилучший способ проверки выбора тега?

Ответы [ 2 ]

7 голосов
/ 07 марта 2011

Браузеры не всегда имели свойство .value для

var birthMonth=document.registration_form.Birth_Month;
if(birthMonth.options[birthMonth.selectedIndex].value===''){

Я сейчас использую jQuery .val (). Я не помню, в каких браузерах отсутствует свойство select.value, и, возможно, эти браузеры настолько стары, что нам больше не нужно о них беспокоиться. Но jQuery не использует select.value - он просматривает каждый из параметров, чтобы найти значение выбранного параметра.

Конечно, если вы знаете, что у вас всегда будет один пустой параметр в качестве первого, просто проверьте selectedIndex == 0.

0 голосов
/ 19 июня 2014

Я считаю, что целые числа - лучшая практика для значений параметров.В любом случае, приведенный ниже фрагмент не имеет значения, является ли значение по умолчанию пустой строкой или нулевым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...