#javascript #jquery #forms #jquery-validate
#javascript #jquery #формы #jquery-проверка
Вопрос:
Я использую плагин проверки jQuery из здесь. Есть ли способ проверить, не равно ли поле некоторой строке? У меня есть элемент выбора, который выглядит следующим образом:
<select id="school_admin" name="school">
<option value="selector">Select...</option>
<option value="UDSM">University of Dar Es Salaam</option>
<option value="ARU">Ardhi University</option>
<option value="IFM">Institute of Finance Management</option>
</select>
Как вы можете видеть, первый параметр — «Выбрать …», и мне нужно проверить при отправке, что он установлен не на этот первый элемент, а на какой-то другой актуальный параметр. Как я могу сделать это быстро?
Ответ №1:
Лучшим способом кодирования вашего выбора может быть использование optgroup
:
<select id="school_admin" name="school">
<optgroup label="Select a school...">
<option value="selector">Select...</option>
<option value="UDSM">University of Dar Es Salaam</option>
<option value="ARU">Ardhi University</option>
<option value="IFM">Institute of Finance Management</option>
</optgroup>
</select>
В этом случае метку ‘select’ невозможно выбрать.
Комментарии:
1. Я думаю, что это хорошее решение, и я, несомненно, буду использовать его в другом приложении, но мне нужно сделать видимым этот первый элемент, а не первый элемент в списке школ. Спасибо!
Ответ №2:
Почему бы просто не изменить значение параметра по умолчанию на пустое и не использовать поддержку метаданных, объявив класс required в поле select. Вот демо
Ответ №3:
if($("#item").html() != "string" )
Ответ №4:
Я предлагаю вам оставить значение Select … пустым value=""
, а затем просто
if ( ( sel = $('#school_admin').val() ).length ) { ... }
else { .. }
Никогда не использовал фактический плагин, поэтому вы должны быть в состоянии заставить его работать с собственным api
Ответ №5:
Проверьте значение элемента select и посмотрите, совпадает ли оно с первым.
if ($('#school_admin').val() != 'selector') {
//Doesn't equal the first one, do your thing
}