2016-01-14 38 views
0

我有一個頁面,如果名字和姓氏未填寫,addAddress按鈕將不起作用。這段代碼完美工作,如果你按下addAddress按鈕,它會要求填寫這些必填字段。如果你願意,它可以工作,但如果你只是填寫它並刪除你寫的內​​容,按鈕將再次工作。我不明白是什麼問題?按鈕在填寫並刪除所寫內容後未填寫必填字段時起作用

self.addAddress = function() { 
    if (self.FirstName() != undefined && self.LastName() != undefined) { 
     self.selectedAddress(new Address(true)); 
    } 

    else { 
     self.errors.showAllMessages(); 

    } 
}; 
+0

是它只是筆誤或者是你檢查名字兩次? – BeardedMan

+0

它沒有更多的未定義,但空字符串 – BeardedMan

+0

@BeardedMan如何更改if語句,以便它將正常工作? – Kakos649

回答

0

我認爲當你刪除它,它不再是不確定的,但空字符串,因此檢查空字符串應該做的伎倆

self.addAddress = function() { 
if (self.FirstName() !== '' && self.LastName() !== '') { 
    self.selectedAddress(new Address(true)); 
} 

else { 
    self.errors.showAllMessages(); 

} 
+0

考慮更新您的答案,使用'!=='或'!!'成語。目前,例如,如果'FirstName'意外地將數字0作爲其值,則代碼將無法按預期工作。 – Jeroen

+0

此答案鼓勵使用ko驗證的方式,這是不好的做法 – Anders

0

這樣做的正確方法是定義一個驗證組和檢查一下。你做這件事的方式只使用了顯示信息的變化..

定義組

this.errors = ko.validation.group(this) 

檢查其有效

this.errors().length === 0 
相關問題