簡単なDojoアプリケーションを開発しています。フォームに少し問題があります。私はこのようなフォームを持っています:
<form data-dojo-type="dijit.form.Form" data-dojo-attach-point="loginForm" method="POST">
<label for="${id}_login">Login</label>
<input name="login" id="${id}_login" data-dojo-attach-point="login" data-dojo-type="dijit.form.ValidationTextBox" data-dojo-props="required:true"/>
<label for="${id}_password">Password</label>
<input name="password" id="${id}_password0" data-dojo-attach-point="password" data-dojo-type="app.ValidationPassword" />
<input type="submit" data-dojo-attach-point="loginButton" data-dojo-type="app.BusyButton" label="Login!" />
</form>
私が持っているアプリでは:
this.loginForm.onSubmit = function(e){
// Do Ajax calls etc.
// ..
// Prevents actual submission
return false;
}
ただし、「return false」の前にJavascriptに問題が発生した場合、フォームは実際に送信され、エラーが発生します(そのURLにPOSTアクションが定義されていないため、ノードアプリが返されます)。Cannot POST /login
どのような場合でもフォームが送信されないことを1000%確認するにはどうすればよいですか?私はAjaxですべてを行うので、タグを完全に取り除くことができることを知っていますが、...それではdata = that.loginForm.getValues();
、たとえば、うまくいきません。(つまり、結局のところフォームです)
(注:JavaScript以外のダウングレードには興味がありません。このアプリは1ページのajaxアプリであり、ユーザーがAJAXを持っていない場合に機能させる意味はありません))