【问题标题】:Using Jquery Validation Plugin's required( dependency-expression )使用 Jquery 验证插件的必需(依赖表达式)
【发布时间】:2010-09-21 18:47:29
【问题描述】:

我正在使用 jQuery Validation 插件,我正在尝试弄清楚如果选择了前缀(先生、女士等)或后缀(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 以便它可以解释前缀 ||后缀。关于我做错了什么的任何线索? 提前致谢。

【问题讨论】:

    标签: jquery validation plugins dependencies


    【解决方案1】:

    你的 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'
                }
    
            });
    

    希望这会有所帮助,

    【讨论】:

    • 如果你想同时检查下拉列表值试试这个 >>>>>>>> return ($('#prefix').val() == '' && $(' #suffix').val() == '')
    【解决方案2】:

    我认为您正在寻找 depends 规则 - http://docs.jquery.com/Plugins/Validation/validate#toptions

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多