2012-11-06 102 views
0

我有一個叫做Validation的函數,它包含三個函數。現在,當我想從一個函數調用另一個函數內部Validation即第13行然後我得到這個錯誤當前對象中的函數不能被調用。爲什麼?

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

不應該將'Validation'作爲'object'而不是'function'嗎? –

回答

3

只有validateAddressemptyFieldsValidation

更換 self.validateAddress

你可以閱讀更多關於嵌套功能和關閉here

相關問題