私は道場1.9を使用しています。2 つの送信ボタンがあるフォームがあり、どのボタンがアクティブになってフォーム送信イベントが発生したかを検出したいと考えています。
API で、ウィジェットには、focused
クリックされたとき、またはフォーカスがあるときに Enter キーが押されたときに true と思われるプロパティがあることがわかりました。
dojo は、どのボタン (またはフォーム コントロール) がフォームの送信を引き起こしたかを検出するために、API で何かを提供していますか? 私の方法は機能しているようですが、これを目的としたものを使用する方が快適だと思います。私の最初のアイデアは、submit イベント オブジェクトをチェックして srcElement を確認することでしたが、dojo ではこれが常にフォーム要素に設定されているようです。
私が試したことを示すjsfiddleデモを作成しました。
html
<form id="prefs-form">
<div>
<input id="name">
<button id="save" type="button">Save</button>
<button id="delete" type="button">Delete</button>
</div>
</form>
js
require(["dijit/form/Button", "dijit/form/TextBox", "dijit/form/Form", "dojo/domReady!"], function(Button, TextBox, Form){
var saveBtn = new Button({
type: 'submit',
}, "save");
//make delete button
var deleteBtn = new Button({
type: 'submit'
}, "delete");
var textBox = new TextBox({
}, "name");
var form = new Form({
onSubmit: function(evt){
dojo.stopEvent(evt);
console.log(saveBtn.get("focused"));
console.log(deleteBtn.get("focused"));
console.log(textBox.get("focused"));
}
}, "prefs-form");
});