アプリケーションのログインにを使用し、dijit.form.Form
dojoがフォームの検証を実行できるようにし、xhrPostを使用してフォームを送信したいと思います。onSubmit
これは、イベントthis.validate()
をオーバーライドし、ログインフォームの検証に使用することで簡単に実行できると思います。
ログインを成功させるには、onSubmit
イベントがいつ完了したかを確認して、DOMからログインフォームを安全に削除できるようにするにはどうすればよいですか?
ドキュメントから、dojo(validate?)は、onSubmitから戻った後(私の場合はfalse)、DOMのログインフォームを参照し続ける可能性があるようです。ログインフォームをDOMから安全に削除できるように、onSubmitイベントが完了するのを「リッスン」する方法はありますか?
編集
@BuffaloBuffalo-私はあなたの例を試し、onSubmit this.validate()内でdojo.xhrPostを呼び出しました。
onSucessFunctionは、onSubmitイベントからfalseを返すdojo.xhrPostの後のステートメントに戻る前に、制御を受け取り、処理を完了しました。要約すると、this.validate()はtrueであり、ログインフォームはdojoによって検証され、onSuccessFunctionは例に示すように制御を受け取りました。ただし、ログインDOMを非表示にするのではなく、実際には以下のdojo1.7.3AMD構文を使用して完全に削除します。
var loginDOMnode = dom.byId("Login");
array.forEach(registry.findWidgets(loginDOMnode), 'item.destroyRecursive(true)');
domConstruct.empty(loginDOMnode);
IE 9を使用していますが、次のエラーが発生します。
SCRIPT5007:プロパティ'value'の値を取得できません:オブジェクトがnullまたは未定義のValidationTextBox.js、14行目文字1
ログインフォームをDOMから削除した後、onSubmit this.validate()からfalseを返すため、ValidationTextBoxでdojoを実行する前に、DOMからログインフォームを削除しているように見えます。onSubmit this.validate()からfalseを返した後にonSucessFunctionを実行する方法はありますか?