VarienFormを使用して同じページで動的に作成されたフォームを検証する方法は?
-
16-10-2019 - |
質問
OnePageの顧客アカウントを作成していますが、動的に作成された追加のアドレスフォームを検証する必要があります。 すべて同じページにあります.
Magentoで使用する必要があることを理解しています new VarienForm
フォームを検証します。それを行うには、次の行を呼び出します
var dataForm = new VarienForm('form-id', true);
しかし、フォームが追加の顧客アドレスのように動的に作成され、すべてのフォームが同じページにある場合、フォームが検証されたかどうかを確認する必要がある場合
if(dataForm.validator.validate())
これではありません var dataFrorm
次の生成されたフォームで上書きをしますか?それで、最初のフォームが検証されているかどうかを確認しようとすると、実際に最後にチェックしますか?はい、フォームIDを動的に生成できますが、JS変数名で同じことをする必要がありますか?それは正しく聞こえませんか、それともそうですか?同じ目標を達成するためのより良いアプローチはありますか?
解決
フォームを動的に作成する場合は、JavaScript(AJAX)リクエストを介してこれを実行します。
そのため、フォームが作成された後にJavaScriptを追加できる場所があります。
ステップのカウントが限られている場合、すべてのフォームには異なるコンテンツ/フィールドがあるため、すべてのステップが独自のフォームIDを取得します。
ただし、常に同じフォームを使用してコンテンツのみを変更する場合、IDではなくDOM要素にバインドされているため、新しいオブジェクトを作成する必要はありません。この場合、あなたはそれを再作成すべきではありません。
but2:常にフォーム全体を置き換える場合は、古いフォームがとにかく離れているため、同じIDを使用できます。そのため、同じフォームIDでいつでも新しいものを作成できます
非常に重要なルール:ページ上に同じIDを持つ1つ以上の要素があり、物事が壊れます。