jQuery对话框插件中是否有“按Enter键提交”选项?

3

网址在这里:

http://jqueryui.com/demos/dialog/#modal

假设这个对话框包含两个按钮:“确定”和“取消”,

当按下“Enter”键时,我希望调用与“确定”按钮绑定的函数。

如何实现?

对话框大致是这样的:

<table cellpadding="0" border="0" width="100%">
    <tr align="center">
        <td align="right">name/email:</td>
        <td><input type="text" id="name" /></td>
    </tr>
    <tr align="center">
        <td align="right" valign="top">password:</td>
        <td>
                <input type="text" id="psw" />
        </td>
    </tr>
    <tr align="center">
        <td></td>
        <td><span id="loginErr"></span></td>
    </tr>
</table>
4个回答

2
将“Ok”按钮分配给一个标签,并使其获得焦点(如果仅使用第一个方法无法正常工作)。

看到我的更新,无法聚焦在按钮上。当聚焦在某些<input>上时应该可以工作。 - omg

1

您可以通过添加选项对象轻松添加自定义按钮

buttons: {
'Button OK': function() {
  // Do something
 },
'Button No': function() {
  // Do something
}

要在按下回车键时提交表单字段,只需执行以下操作:

$("#name").keydown(function(event){
    if(event.keyCode == "13") {
        // call the function for submit the form
    }
});

请在此处找到所有KeyCode的完整源代码: http://unixpapa.com/js/key.html

1

你可以选择snuffer-ch建议的方法,或者使用jQuery-Hotkeys插件http://code.google.com/p/js-hotkeys/,它可以让你做到以下操作:

$(document).bind('keydown', 'return', function(){
  //your code goes here
});

0

不,这个功能不是开箱即用的,你需要自己添加或找到一个插件来添加它(我目前没有想到一个合适的)。

一个可能的解决方案是监听对话框的 keyup 事件,并确定它是否起源于一个 <input> 元素。如果是这样,查询对话框选项中的 buttons 成员,并调用第一个按钮的处理函数(接近于单击默认按钮)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接