功能结果未显示错误文本

时间:2017-07-30 20:08:35

标签: javascript jquery-validate

我以前在其他网页上成功使用过这个定义。基本上它应该使字段成为必需字段,但如果只输入空格则失败(默认键入,即单个空格导致所需的检查通过)。我抛出一个警告只是为了查看处理程序何时被触发以及当时this的值。它在我预期的时候被解雇了,价值就像我预期的那样。它应该返回false,但显然它不是因为没有显示错误。如果我删除depends函数并且只有required: true,则会在用户离开字段时正确显示错误。发生了什么事?

ContactName: {
        required: {
            depends: function() {
                alert("'" + $(this).val() + "'");
                if ($.trim($(this).val()).length === 0) {
                    $(this).val($.trim($(this).val()));
                    return false;
                }
                return true;
            }
        },
        maxlength: 100
    }

1 个答案:

答案 0 :(得分:0)

您可以更改 ContactName 的规则(有关详细信息,请查看rules examples):

ContactName: {
    required: true,
    minlength: {
        depends: function(ele) {
            if (ele.value.trim().length === 0) {
                ele.value = '';
                return false;
            }
            return true;
        }
    },
    maxlength: 100
}

摘录:



$("#commentForm").validate({
    rules: {
        ContactName: {
            required: true,
            minlength: {
                depends: function(ele) {
                    if (ele.value.trim().length === 0) {
                        ele.value = '';
                        return false;
                    }
                    return true;
                }
            },
            maxlength: 100
        }
    },
    messages: {
        ContactName: "Please enter your contact name"
    }
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.min.js"></script>


<form class="cmxform" id="commentForm" method="get" action="">
    <fieldset>
        <p>
            <label for="ContactName">Name</label>
            <input id="ContactName" name="ContactName" type="text">
        </p>
        <p>
            <input class="submit" type="submit" value="Submit">
        </p>
    </fieldset>
</form>
&#13;
&#13;
&#13;