2012-11-06 2 views
0

세 가지 기능을 포함하는 Validation이라는 기능이 있습니다. 내가 라인 (13)에 Validation 즉, 내부에 하나의 함수에서 다른 하나 개의 함수를 호출 할 때 지금 그 때 나는 여기 현재 개체의 함수를 호출 할 수 없습니다. 왜?

Uncaught TypeError: Object [object Object] has no method 'validateAddress' 

내 코드

var Validation = function() { 
var inputs, field, errors = [], self = this, 

emptyFieldsValidation = function() { 
    $('#form input').each(function (i, el) { 
     inputs = $(this); 
     if (inputs.val() == '') { 
      inputs.css('border', '1px solid red'); 
      return errors.push('emptyFields'); 
     } else { 
      inputs.css('border', '1px solid #ccc'); 
      if (inputs.hasClass('from')) { 
       if (!self.validateAddress(inputs.val())) 
        errors.push('invalidFromAddress'); 
      } 
      if (inputs.hasClass('to')) { 
       if (!self.validateAddress(inputs.val())) 
        errors.push('invalidToAddress'); 
      } 
      if (inputs.hasClass('time')) { 
       if (!self.validateForNumber(inputs.val())) 
        errors.push('invalidTime'); 
      } 
     } 
    }); 
    return !!errors.length; 
}, 

validateAddress = function (val) { 
    var streetregex = /^[\w+\s]+\d+,\s*[\s\w]+$/; 
    if (streetregex.test(val)) return true; 
    else return false; 
}, 

validateForNumber = function (val) { 
    if (!isNaN(val)) return true; 
    else return false; 
}; 

return { 
    emptyFieldsValidation: emptyFieldsValidation 
}; 
} 
+1

'유효성 검사'가 '함수'가 아닌 '객체'일까요? –

답변

3

단지 validateAddressemptyFieldsValidation

에서와 self.validateAddress 교체입니다이 오류를 얻을

내포 된 기능 및 클로저에 대한 자세한 내용은 here을 참조하십시오.

관련 문제