VarienFormを使用して同じページで動的に作成されたフォームを検証する方法は?

magento.stackexchange https://magento.stackexchange.com/questions/3176

質問

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つ以上の要素があり、物事が壊れます。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top