Требуется использование подключаемого модуля валидации Jquery (выражение зависимости) - PullRequest
1 голос
/ 21 сентября 2010

Я использую плагин jQuery Validation и пытаюсь выяснить, как сделать поле имени обязательным, если выбран префикс (Mr, Ms и т. Д.) Или суффикс (Jr, Sr, PhD).Вот что у меня есть:

$('#geninfo').validate({
  rules:{
   firstname: {required: function(element){
      return $("#prefix").val() != " ";
      }
    }
   },
  messages:{
   firstname: 'enter a name'
   }       
 });

Вот HTML:

<ul>
                <li><label for="prefix">Prefix:</label>
                 <select name="prefix" id="prefix">
                      <option selected="selected" value=" ">Select One</option>
                        <option value="ms">Ms</option>
                        <option value="miss">Miss</option>
                        <option value="mrs">Mrs</option>
                        <option value="mr">Mr</option>
                        <option value="dr">Dr</option>
                    </select>
                </li>
<li><label for="firstname">First Name:</label> <input type="text" name="firstname" id="firstname" /></li>
<li><label for="suffix">Suffix:</label>
                 <select name="suffix" id="suffix">
                      <option selected="selected" value=" ">Select One</option>
                        <option value="jr">Jr</option>
                        <option value="sr">Sr</option>
                        <option value="ii">II</option>
                    </select>
                </li></ul>

Я не могу понять, как написать js, чтобы он отвечал запрефикс ||суффикс.какие-либо подсказки относительно того, что я делаю неправильно?заранее спасибо.

Ответы [ 2 ]

1 голос
/ 21 сентября 2010

у вас есть ошибка в вашем HTML

             <select name="prefix" id="prefix">
                  <option selected="selected" value=" ">Select One</option>
                    <option value="ms">Ms</option>
                    <option value="miss">Miss</option>
                    <option value="mrs">Mrs</option>
                    <option value="mr">Mr</option>
                    <option value="dr">Dr</option>
                </select>

в приведенном выше HTML-коде

<option selected="selected" value=" ">Select One</option>

значение имеет "пробел" - "" не пусто

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

Изменил код, чтобы убрать пробел в значении выбранной опции

             <select name="prefix" id="prefix">
                  <option selected="selected" value="">Select One</option>
                    <option value="ms">Ms</option>
                    <option value="miss">Miss</option>
                    <option value="mrs">Mrs</option>
                    <option value="mr">Mr</option>
                    <option value="dr">Dr</option>
                </select>

и выполнил этот сценарий Java, и он работал хорошо.

        $('#geninfo').validate({
            rules: {
                firstname: {
                    required: function () {
                        return $('#prefix').val() == ''
                    }
                }
            },
            messages: {
                firstname: alert('enter a name')  //enter a name'
            }

        });

Надеюсь, это поможет,

1 голос
/ 21 сентября 2010

Я думаю, вы ищете правило depends - http://docs.jquery.com/Plugins/Validation/validate#toptions

 rules:{
   firstname: {
     required: {
       depends: function(element) {
         return $("#prefix").val() != " ";
       }
     }
   }
 },
...