jQuery Validate select>option равный 0

Статус
В этой теме нельзя размещать новые ответы.

Genk0

Хранитель порядка
Регистрация
2 Июн 2010
Сообщения
3.095
Реакции
1.405
Есть select у которого первый option value=0, соответственно если выбрано 0 то поле не должно проходить валидацию и должно высветить ошибку.
Вся суть в том, что я не могу обратиться к селекту по его имени из-за большого количества таковых.

Т.е. поставив Required к селекту валидация срабатывает если оption будет пустой, но в моем случае это 0.

Иными словами, как переписать стандартную проверку на select с option = 0 , а не пустым, не используя имена select?
 
Покажите ваш код валидации. и каким именно вы плагином пользуетесь?
Попробуйте проверять в ручную $("select").val();
 
<script type="text/javascript" src="Для просмотра ссылки Войди или Зарегистрируйся"></script>
Код:
$(document).ready(function(){
    $("#item-form").validate({
      errorClass: "inp-error",
       rules:{
            title:{required: true,},
       },
       messages:{
            title:{required: "Это поле обязательно для заполнения",},
       }
    });
});
Ну и кусок формы
HTML:
<select class="req" required name="d[49][8]">
<option value="0" selected="selected">Выберите марку авто</option>
<option value="1">Acura</option>
</select>
required соответственно говорит что нужно пройти валдацию, но первый option стоит 0, поменять его не могу, поэтому и нужно сделать проверку на 0 а не пустой value
 
</select>[/HTML]
required соответственно говорит что нужно пройти валдацию, но первый option стоит 0, поменять его не могу, поэтому и нужно сделать проверку на 0 а не пустой value
На вскидку вариант - если меньше нуля значения быть не могут, установить минимально возможное:
HTML:
$(document).ready(function(){
    $("#item-form").validate({
      errorClass: "inp-error",
       rules:{
            title: {
                required: true,
                min:1
            },
       },
       messages:{
            title:{required: "Это поле обязательно для заполнения",},
       }
    });
});
 
title: {
required: true,
min:1

ЕЩЕ раз повторяю - я не могу обратиться к селекту по имени!
 
пробовал
if( parseInt( select:value ) == '0' ) ?
 
ЕЩЕ раз повторяю - я не могу обратиться к селекту по имени!
А на всех селектах формы не висит случаем один и тот же класс? Если висит, есть идея.

Еще пришел на ум такой костыльный вариант:
Код:
$(document).ready(function(){
    $("#item-form select >  option:eq(0)").each(function(){
        if($(this).val() == 0) {
            $(this).val('');
        }
    });

    $("#item-form").validate({
      errorClass: "inp-error",
       rules:{
            title: {
                required: true
            },
       },
       messages:{
            title:{required: "Это поле обязательно для заполнения",},
       }
    });
});
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху