【问题标题】:jQuery validate dependancy call functionjQuery验证依赖调用函数
【发布时间】:2013-08-20 15:37:25
【问题描述】:

如果e_usagelow字段未填写,下面的jQuery验证代码应该检查用户必须输入e_usage字段的表单。我根据jQuery Validation - Two fields, only required to fill in one的示例编写了e-usage的依赖调用函数,但不知何故我的功能不起作用(例如,当 e_usagelow 为空时将鼠标放在 e-usage 字段上时,不会出现验证错误警告并且控制台显示值'true')

出了什么问题?

请你帮忙。

html代码:

E-usage: <input id="e_usage" type="text" name="e_usage">
E-usage low: <input id="e_usagelow" type="text" name="e_usagelow" >

javascript代码:

$(document).ready(function () {
  $("#myForm").validate({
    rules: {
      'e_usage': {
        required: function (element) {
          console.log("validation: required: " + $("#e_usagelow").is(':empty'));
          return $("#e_usagelow").is(':empty');
        },
        minlength: 3,
        maxlength: 8,
        number: true
      },
      'e_usagelow': {
        required: true,
        minlength: 3,
        maxlength: 8,
        number: true
      }
    } //rules
  }); //validate()
}); //function

【问题讨论】:

    标签: jquery validation jquery-validate


    【解决方案1】:

    DEMO

    'e_usage' 更改为e_usage

    'e_usagelow'e_usagelow

    id 没有用引号括起来

    $(document).ready(function () {
    
        $("#myForm").validate({
    
            rules: {
                e_usage: { //removed quotes from id
                    required: function (element) {
                        console.log("validation: required: " + $("#e_usagelow").is(':empty'));
                        return $("#e_usagelow").is(':empty');
                    },
                    minlength: 3,
                    maxlength: 8,
                    number: true
                },
    
                e_usagelow: { //removed quotes from id
                    required: true,
                    minlength: 3,
                    maxlength: 8,
                    number: true
                }
    
            } //rules
    
    
        }); //validate()
    
    });
    

    【讨论】:

    • 感谢您的快速响应。不幸的是,除非我对验证功能有不同/错误的期望,否则它仍然不起作用。 (应用您建议的更改后:)当我作为用户执行以下步骤时:(1)在“e_usage”字段中仅填写 1 个字符 -> 错误警告; (2) 删除 e_usage 字段中的字符 -> 错误警告“此字段为必填项”;(3) 在 'e_usagelow' 字段中填写 4 个字符 -> e_usage 字段中的错误警告“此字段为必填项”不会消失 (? ?) 我所期望的...
    • 更新:似乎 is(':empty') 函数不起作用(不知道为什么不呢???)。 $("#e_usagelow").val().length (>0 比较) 似乎有效
    • @user2543182 is(':empty') 不工作使用return ($("#e_usagelow").val().length &gt; 0)?false:true; DEMO
    • @Tushar,名称两边的引号是可选的。如果名称包含点或括号,则必须使用引号。换句话说,在名称周围加上引号从来都不是问题。
    • thnx 适用于所有 cmets(!),现在可以使用。 @Sparky:同意,之前的引号也对我有用......
    猜你喜欢
    • 2012-04-03
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多