我需要驗證一個表單,其中有一堆輸入。而且,如果輸入無效,則以特定屬性無效的形式直觀地指示。爲此我需要驗證每個表單元素個別。主幹:逐一驗證屬性
我有一個模型&代表整個表單的一個視圖。現在當我更新屬性時:
this.model.set('name', this.$name.val())
模型上的驗證方法將被調用。
但是,這種方法我驗證所有屬性,所以設置上面的屬性時,所有其他人也證實,如果任一個是無效的,則返回一個錯誤。這意味着即使我的'名稱'屬性有效,我也會爲其他人出錯。
那麼,如何驗證一個屬性呢?
我認爲不可能通過validate()方法驗證一個屬性。一種解決方案是不使用validate方法,而是驗證'change'事件的每個屬性。但是,這會造成很多變更處理程序。這是正確的方法嗎?我還可以做些什麼?
我也認爲這指向一個更大的問題在骨幹:
每當你使用
model.set()
設置在模型上的屬性,您的驗證方法運行和所有屬性被驗證。這似乎違反直覺,因爲你只是想要驗證這個單一的屬性。
我同意,如果這是由設計,這的確是一個問題。如果您要爲表單創建模型,則許多字段將爲空,因此處於無效狀態。在調用save()之前,字段更改是否應該只保存在模型中?目前有活動代表進行現場更改。 – SAGExSDX