たくさんの入力を含むフォームを検証する必要があります。また、入力が無効な場合は、特定の属性が無効であることをフォームで視覚的に示してください。このために、各フォーム要素を個別に検証する必要があります。
フォーム全体を表す1つのモデルと1つのビューがあります。属性を更新すると、次のようになります。
this.model.set('name', this.$name.val())
モデルのvalidateメソッドが呼び出されます。
ただし、そのメソッドではすべての属性を検証しているため、上記の属性を設定すると、他のすべての属性も検証され、いずれかが無効な場合はエラーが返されます。これは、私の「名前」属性が有効であっても、他の人にエラーが発生することを意味します。
では、1つの属性だけを検証するにはどうすればよいですか?
validate()メソッドで1つの属性を検証することはできないと思います。1つの解決策は、validateメソッドを使用せず、代わりに「change」イベントのすべての属性を検証することです。しかし、これにより多くの変更ハンドラーが作成されます。それは正しいアプローチですか?他に何ができますか?
また、これはバックボーンのより大きな問題を示していると思います。
model.set()
モデルに属性を設定するために使用する場合は常に、検証メソッドが実行され、すべての属性が検証されます。その単一の属性を検証したいだけなので、これは直感に反しているように見えます。