src/jquery.validation.js
function (node, validation) {

            var self = this;

            validation = self._splitValidation(validation);
            if (!validation) {
                return false;
            }

            return node.each(function () {

                var $this = $(this),
                    validationData = $this.attr(_data.validation),
                    validationArray = (validationData && validationData.length) ? self._splitValidation(validationData) : [],
                    oneValidation,
                    validationIndex;

                if (!validationArray.length) {
                    $this.removeAttr(_data.validation);
                    return true;
                }

                for (var i = 0; i < validation.length; i++) {
                    oneValidation = self._formatValidation(validation[i]);
                    validationIndex = $.inArray(oneValidation, validationArray);
                    if (validationIndex !== -1) {
                        validationArray.splice(validationIndex, 1);
                    }

                }

                if (!validationArray.length) {
                    $this.removeAttr(_data.validation);
                    return true;
                }

                $this.attr(_data.validation, self._joinValidation(validationArray));

            });

        }
function (node, validation) {

            var self = this;

            validation = self._splitValidation(validation);
            if (!validation) {
                return false;
            }

            return node.each(function () {

                var $this = $(this),
                    validationData = $this.attr(_data.validation),
                    validationArray = (validationData && validationData.length) ? self._splitValidation(validationData) : [],
                    oneValidation,
                    validationIndex;

                if (!validationArray.length) {
                    $this.removeAttr(_data.validation);
                    return true;
                }

                for (var i = 0; i < validation.length; i++) {
                    oneValidation = self._formatValidation(validation[i]);
                    validationIndex = $.inArray(oneValidation, validationArray);
                    if (validationIndex !== -1) {
                        validationArray.splice(validationIndex, 1);
                    }

                }

                if (!validationArray.length) {
                    $this.removeAttr(_data.validation);
                    return true;
                }

                $this.attr(_data.validation, self._joinValidation(validationArray));

            });

        }
function ( node , validation ) { var self = this ; validation = self . _splitValidation ( validation ) ; if ( ! validation ) { return false ; } return node . each ( function ( ) { var $this = $ ( this ) , validationData = $this . attr ( _data . validation ) , validationArray = ( validationData && validationData . length ) ? self . _splitValidation ( validationData ) : [ ] , oneValidation , validationIndex ; if ( ! validationArray . length ) { $this . removeAttr ( _data . validation ) ; return true ; } for ( var i = 0 ; i < validation . length ; i ++ ) { oneValidation = self . _formatValidation ( validation [ i ] ) ; validationIndex = $ . inArray ( oneValidation , validationArray ) ; if ( validationIndex !== - 1 ) { validationArray . splice ( validationIndex , 1 ) ; } } if ( ! validationArray . length ) { $this . removeAttr ( _data . validation ) ; return true ; } $this . attr ( _data . validation , self . _joinValidation ( validationArray ) ) ; } ) ; }
API method to handle the removal of "data-validation" arguments.

@param {Object} node jQuery objects
@param {String|Array} validation arguments to remove in the node(s) "data-validation"

@returns {*}
API method to handle the removal of data - validation arguments .