             else
                 requireFieldId = _requireWith
 
-            _evaluate = (value, requireFieldId, fieldValue) ->
-                # if criteria is met then required field must be filled out
-                fieldId = _that.attr 'id'
-                requireField = $ "##{requireFieldId}"
-                requireFieldValue = $.trim requireField.val()
-
-                _checkValue = ->
-                    if not value
-                        validate.status = 'danger'
-                        validate.message = "#{fieldId} is required with #{requireFieldId}"
-                    else
-                        validate.message = null
-                        validate.status = 'success'
-                    validate
-
-                if not requireFieldValue
-                    console.log 'do nothing'
-                else if fieldValue? and (requireFieldValue is fieldValue)
-                    _checkValue()
-                else if requireFieldValue.length > 0 and (not fieldValue?)
-                    _checkValue()
+        _evaluate = (value, requiredFieldId, fieldValue) ->
+            # if criteria is met then required field must be filled out
+            fieldId = _that.attr 'id'
+            requiredField = $ "##{requiredFieldId}"
+            requiredFieldValue = $.trim requiredField.val()
+
+            _checkValue = ->
+                if not requiredFieldValue
+                    validate.status = 'danger'
+                    validate.message = "#{requiredFieldId} is required with #{fieldId}"
+                else
+                    validate.message = null
+                    validate.status = 'success'
+                validate
+
+            if not value
+                console.log 'do nothing'
+            else if fieldValue? and (value is fieldValue)
+                _checkValue()
+            else if value.length > 0 and (not fieldValue?)
+                _checkValue()
+            
+            validate
+
+        _evaluate value, requiredFieldId, fieldValue
+
+            # _evaluate = (value, requireFieldId, fieldValue) ->
+            #     # if criteria is met then required field must be filled out
+            #     fieldId = _that.attr 'id'
+            #     requireField = $ "##{requireFieldId}"
+            #     requireFieldValue = $.trim requireField.val()
+
+            #     _checkValue = ->
+            #         if not value
+            #             validate.status = 'danger'
+            #             validate.message = "#{fieldId} is required with #{requireFieldId}"
+            #         else
+            #             validate.message = null
+            #             validate.status = 'success'
+            #         validate
+
+            #     if not requireFieldValue
+            #         console.log 'do nothing'
+            #     else if fieldValue? and (requireFieldValue is fieldValue)
+            #         _checkValue()
+            #     else if requireFieldValue.length > 0 and (not fieldValue?)
+            #         _checkValue()
                 
-                validate
-
-            _evaluate value, requireFieldId, fieldValue
-
-
+            #     validate
+
+            # _evaluate value, requireFieldId, fieldValue
+            
     validateAllowedWith: (value) ->
         _that = $ @
         _allowedWith = _that.data 'allowed-with'


        # validate empty fields
        
        body.on 'blur', '[required]', -> 
            value = self.getValue.call @
            validate = self.validateRequired.call @, value
            if validate?
                validateField.call @, value, validate

        body.on 'blur', ':input:not([required])', ->
            value = self.getValue.call @
            if not value
                self.removeValidationClass.call @
                self.removeAllNotices.call @, self.speed
        
        body.on 'blur', ':input[data-required-with]', ->
            # need to monitor required field also
            value = self.getValue.call @
            validate = self.validateRequiredWith.call @, value
            if validate?
                validateField.call @, value, validate
        
        body.on 'blur', ':input[data-require-with]', ->
            # need to monitor required field also
            value = self.getValue.call @
            validate = self.validateRequiredWith.call @, value
            if validate?
                validateField.call @, value, validate
        
        body.on 'blur', ':input[data-allowed-with]', ->
            value = self.getValue.call @
            validate = self.validateAllowedWith.call @, value
            if validate?

            else
                requiredFieldId = _requiredWith

        else if _requireWith

            if _requireWith.search(':') isnt -1
                _requireWith = _requireWith.split ':'
