我从 JQuery UI 网站获取了 JQuery UI 对话框表单示例。
因为我想要这样,一旦打开对话框并显示表单,按下键提交表单,我在 onReady() 中添加了以下内容:
$.extend($.ui.dialog.prototype.options, { open: function() { var $this = $(this);
// focus first button and bind enter to it
$this.parent().find('.ui-dialog-buttonpane button:first').focus();
$this.keypress(function(e) {
if( e.keyCode == 13 ) {
$this.parent().find('.ui-dialog-buttonpane button:first').click();
return false;
}
});
}
});
这完全可以解决问题(我的意思是 click() 在必须触发时触发),但是会发生以下情况:
当表单首次通过按键提交时,提交执行一次。
如果我重新打开对话框,然后按一下键再次提交,则表单会提交两次。
如果我重新打开对话框,然后按一下键再次提交,则表单会提交三次,依此类推...
这可以用以下小提琴进行测试:http: //jsfiddle.net/fWW2E/
让我补充一点,通过单击专用的“提交”按钮可以正常工作,只有在涉及按键时才会失败。
有任何想法吗 ?
谢谢 !