简体   繁体   English

如何检查JavaScript中的元素上是否存在验证规则

[英]How to check if a validation rule exists on an element in javascript

I need to add a custom validation on datepicker just like we add custom validations by adding rules in javascript like the one here - jQuery Validate Plugin - How to create a simple custom rule? 我需要在datepicker上添加自定义验证,就像我们通过在javascript中添加规则(例如此处的jQuery验证插件)如何添加简单的自定义规则来添加自定义验证一样

But before adding one more custom validator on same element I need to verify if another rule/validator method exists. 但是在同一元素上添加一个自定义验证器之前,我需要验证是否存在另一个规则/验证器方法。

How can I check that? 我该如何检查? I know I can get all rules like - 我知道我可以获得所有规则,例如-

var rules = $(element).rules();

Rules is a dictionary type which can be fetched like below - 规则是一种字典类型,可以通过以下方式获取-

function findProperty(obj, key) {
    if (typeof obj === "object") {
        if (key in obj) {
            return true;
        } else {
            return false;
        }
    }
    return false;
}

var rules = $(element).rules();
if (rules) {
    var isGreater = findProperty(rules, 'greaterthandate');
}

After initialising the validate plugin, all the elements which have rules defined will return an object when you call rules() on it. 初始化validate插件后,所有定义了规则的元素都将在您对其上调用rules()时返回一个对象。 This object contains the rule definitions, which you can check, something like this: 该对象包含规则定义(可以检查),如下所示:

 $('form').validate() var fooRequired = $('#foo').rules().required || false; var barRequired = $('#bar').rules().required || false; console.log('foo required? ' + fooRequired); console.log('bar required? ' + barRequired) 
 <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.17.0/jquery.validate.js"></script> <form> <input type="text" name="foo" id="foo" data-rule-required="true" /> <input type="text" name="bar" id="bar" /> <button type="submit">Go</button> </form> 

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

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