【发布时间】:2013-06-11 16:42:31
【问题描述】:
我正在使用 dojo 1.9。我有一个带有 2 个提交按钮的表单,我想检测哪个按钮被激活,导致表单提交事件。
在 api 中,我发现小部件有一个 focused 属性,当它们被单击时,或者当它具有焦点时按下回车键时,它似乎是真的。
dojo 是否在他们的 api 中提供了一些东西来检测哪个按钮(或表单控件)导致表单提交?我的方法似乎有效,但我会觉得使用为此目的的东西会更舒服。我的第一个想法是检查提交事件对象并查看 srcElement,但 dojo 似乎总是将其设置为表单元素
我做了一个jsfiddle demo 来展示我的尝试。
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");
});
【问题讨论】:
标签: dojo