私はこのようなフォームを持っています(ウィジェットテンプレートから):
'<div>' +
' <form data-dojo-type="dijit.form.Form" data-dojo-attach-point="form" method="POST"> ' +
' <label for="${id}_workspace">Workspace name</label> ' +
' <input name="workspace" id="${id}_workspace" data-dojo-attach-point="workspace" data-dojo-type="app.ValidationWorkspace" />' +
' <label for="${id}_password1">Password</label> ' +
' <input name="password[0]" id="${id}_password1" data-dojo-attach-point="password1" data-dojo-type="app.ValidationPassword" />' +
' <label for="${id}_password1">Confirm password</label> ' +
' <input name="password[1]" id="${id}_password2" data-dojo-attach-point="password2" data-dojo-type="app.ValidationPassword" />' +
' <input type="submit" data-dojo-attach-point="button" data-dojo-type="app.BusyButton" label="Create!" />' +
' </form>' +
'</div>',
コードで、私は書いた:
data = {};
data.workspace = that.workspace.get('value');
data.password = [];
data.password[0] = that.password1.get('value');
data.password[1] = that.password2.get('value');
// Store the data
g.stores.workspacesAnon.put(data).then(
function(res){
console.log("Jsonrest put(data) returned OK: " + json.toJson(res) );
that.button.cancel();
}
);
2つの実際の質問:
that.password1.get('value')の代わりにthat.form.value.emailを使用すると、古い値がフォーム(!)に送信されることがあります。たとえば、password2フィールドに何かを入力し、すぐにEnterキーを押すと、実際の送信はDojoで期待どおりに行われますか?どうしてそれが起こるのですか?
「password[0]」と「password[1]」が自動的に配列になるように、フォームの値を取得するためのより良い方法はありますか?