javascript - 在 <Enter> 上提交 jQuery UI 对话框

标签 javascript jquery jquery-ui

我有一个带有表单的 jQuery UI 对话框。我想模拟点击对话框的一个按钮,这样您就不必使用鼠标或 Tab 键来点击它。换句话说,我希望它像一个常规的 GUI 对话框一样,在其中模拟点击“确定”按钮。

我认为这可能是对话框的一个简单选项,但我在 jQuery UI documentation 中找不到它.我可以用 keyup() 绑定(bind)每个表单输入,但不知道是否有更简单/更干净的方法。谢谢。

最佳答案

我不知道 jQuery UI 小部件 中是否有选项,但您可以简单地将 keypress 事件绑定(bind)到 div包含您的对话框...

$('#DialogTag').keypress(function(e) {
    if (e.keyCode == $.ui.keyCode.ENTER) {
          //Close dialog and/or submit here...
    }
});

无论对话中的焦点是什么元素,它都会运行,这可能是好事,也可能不是好事,具体取决于您的需要。

如果你想让它成为默认功能,你可以添加这段代码:

// jqueryui defaults
$.extend($.ui.dialog.prototype.options, { 
    create: 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 == $.ui.keyCode.ENTER ) {
                $this.parent().find('.ui-dialog-buttonpane button:first').click();
                return false;
            }
        });
    } 
});

这是它的外观的更详细 View :

$( "#dialog-form" ).dialog({
  buttons: { … },
  open: function() {
    $("#dialog-form").keypress(function(e) {
      if (e.keyCode == $.ui.keyCode.ENTER) {
        $(this).parent().find("button:eq(0)").trigger("click");
      }
    });
  };
});

关于javascript - 在 <Enter> 上提交 jQuery UI 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/868889/

相关文章:

jquery - 当隐藏的 div 可见时无法扩展 div 高度

javascript - 如何使 Html 表格列可编辑?

jquery-ui - 面板的错误消息样式

jquery - 仅在 Firefox 中中止 jQuery.fadeTo 时内容不可见半秒

javascript - 在 jQuery 的 css() 函数中使用 !important

javascript - 将计算的数据存储在 Kendo Grid 的 Column 中

javascript - .val() 仅返回 PHP 数组中的第一行

javascript - 在 JavaScript 中合并对象

javascript - 尝试在 mongodb shell 中使用 eval 时出现 "missing ; before statement"错误

javascript - JS : Show/hide text field depending on radio button issue