简体   繁体   English

jQuery validate插件,检查输入defaultValue

[英]jQuery validate plugin, check input defaultValue

Trying to validate a field using jquery validate plugin. 尝试使用jquery validate插件验证字段。 All I want to check if the current input value is not equal to defaultValue. 我只想检查当前输入值是否不等于defaultValue。 If it is equal then its not valid, clean the value and show the error message. 如果相等,则无效,清除该值并显示错误消息。

Something like that: 像这样:

...

firstname:{
    required: function(element){                       
    return element.val() !== element.defaultValue;
    element.val('');
    }                                          
}

...

Unfortunately that does not work. 不幸的是,这行不通。

Ok, found a solution. 好的,找到了解决方案。 Simply creating a following method solves the issue. 只需创建以下方法即可解决该问题。

jQuery.validator.addMethod("defaultInvalid", function(value, element){
    return !(element.value == element.defaultValue);
},jQuery.validator.messages.required);

Here's an implementation that works for radio buttons as well: 这也是一个适用于单选按钮的实现:

var isChanged = function ($element) {
    switch ($element.attr('type')) {
        case "radio":
            var $formElementsWithSameName = $element.closest('form').find(':input').filter(function () {
                return $(this).attr('name') == $element.attr('name');
            });
            return $formElementsWithSameName.filter(':checked').filter(function () {
                return $(this).prop('defaultChecked');
            }).length == 0;

        case "text":
            return $element.val() != $element.prop('defaultValue');
        default:
            console.error("No implementation of isChanged for element " + $element);
    }
};

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM