jQuery对话框输入提交(无表格焦点)

时间:2012-04-24 19:49:29

标签: javascript jquery html-form jquery-dialog

背景

使用jQuery模式对话框呈现表单。表单具有自动填充字段。当用户从自动完成下拉列表中选择一个选项时,表单将失去焦点。 jQuery对话框检测到ESC键,但从未检测到ENTER键。考虑几种形式之一(在同一页面上),有各种按钮:

代码

检测何时按下ENTER键的源代码:

  $(form).keyup(function( e ) {
    // Submit and close when Enter key pressed by triggering the accept button.
    //
    if( e.keyCode == $.ui.keyCode.ENTER ) {
      sequenceNumber = 0;
      $(this).parent().find( "#accept" ).trigger( 'click' );
    }
  });

当表单的任何字段具有焦点时,这可以按预期工作(“accept”按钮被触发,服务器接收值很好)。

问题

当显示对话框但没有任何字段具有焦点时(例如,用户点击上图中的“鱼片”),然后按ENTER键,键盘事件永远不会被触发。

问题

当表单没有焦点但jQuery对话框仍处于打开状态时,如何收到ENTER事件? (与jQuery对话框接收ESC按键以取消和关闭对话框的方式相同。)

谢谢!

1 个答案:

答案 0 :(得分:1)

我在身体上添加了触发器,然后检查表单是否可见。

$('body').keyup(function( e ) {
  if( e.keyCode == $.ui.keyCode.ENTER ) {
    if( $("#myform").is(":visible") ) {
      // Enter was pressed and form is visible
    }
  }
});