检测在AUI对话框中按下的Enter

时间:2013-07-18 09:44:25

标签: javascript html liferay liferay-aui

我想检测输入是否在html文本字段中使用,我加载到对话框中。

如果输入被按下,我想模拟点击Save - 按钮。

我尝试了很多东西,基本上推动了这个代码:

 $(document).keypress(function(e) {
      if (e.keyCode == $.ui.keyCode.ENTER) {
        $("#resultTextArea").val("Enter gedrueckt");
            $(this).find("button:saveBtn").trigger("click");                                                                        
      }
});

下面是AUI-Dialog(我试过上面的代码)

          AUI().use('aui-dialog', 'liferay-portlet-url', function(A) {
                var dialog = new A.Dialog({
                                            title: 'New title',
                                            centered: true,
                                            modal: true,
                                            width: 500,
                                            height: 200,
                                            bodyContent:AUI().one('#addTestDialog'),
                                            buttons: [ 
                                                       { label : "Save" , id : "saveBtn" , handler : function(){ 
                                                            saveStuff();
                                                            this.close();
                                                        }
                                                       }
                                                        ],

                                            open: function() {
                                                $(document).keypress(function(e) {
                                                    if (e.keyCode == $.ui.keyCode.ENTER) {
                                                         $("#resultTextArea").val("Enter gedrueckt");
                                                        $(this).find("button:saveBtn").trigger("click");                                                                        
                                                    }
                                                });
                                            }

                }).render();
            });

这是定义对话框主体的html部分:

<div style="display:none;">
  <div id="addTestDialog">

   <portlet:actionURL name="addNote" var="addNoteURL" />
    <br>
    <table style="width:100%;">
    <tr>
        <td>Name:</td>
        <td><input id="textInput" style="width:98%;height:20px;"></input></td>
    </tr>       
    </table> 
  </div>
</div>

我使用AlloyUI的API检查了一下,发现了这个:http://deploy.alloyui.com/api/classes/Dialog.html

在属性下:我找到的每个教程/代码都没有打开。 因此,这不起作用(至少我是这么认为的)。我测试了初始化,但这也无法正常工作。

感谢您提供任何帮助/提示。

3 个答案:

答案 0 :(得分:1)

您可以使用 jQuery 来完成此任务

$("#saveBtn").keypress(function(event){
  var keycode = (event.keyCode ? event.keyCode : event.which);
    if (keycode == '13') {
      // do what you want
    }
});

HTH

答案 1 :(得分:1)

它现在有效,这是我的代码(在输入时按下它与savebtn功能相同并关闭对话框):

$(document).ready(function(){
  $("#scenario_add_btn").click(function(){             
     AUI().use('aui-dialog', 'liferay-portlet-url', function(A) {
       var dialog = new A.Dialog({
                                            title: 'New title',
                                            centered: true,
                                            modal: true,
                                            width: 500,
                                            height: 200,
                                            bodyContent:AUI().one('#addTestDialog'),
                                            buttons: [ 
                                                       { label : "Save" , id : "saveBtn" , handler : function(){ 
                                                            saveStuff();
                                                            this.close();
                                                        }
                                                       }
                                                        ]
                }).render();
                $("#textInput").keypress(function(event) {
                     var keycode = (event.keyCode ? event.keyCode : event.which);
                    if (keycode == '13') {
                        saveStuff();
                        dialog.close();
                    }
                  });

            });



     });/*btn.click*/
});/*document ready*/

答案 2 :(得分:0)

输入keyCode13尝试将$.ui.keyCode.ENTER替换为13并检查其是否有效。