0

ダイアログにロードしたhtmlテキストフィールドでEnterが使用されたかどうかを検出したい。

SaveEnter キーが押された場合、 -Buttonのクリックをシミュレートしたいと考えています。

私は多くのことを試しましたが、基本的にこのコードをプッシュしました:

 $(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 が見つかりました

属性の下: 私が見つけたすべてのチュートリアル/コードで使用されているオープンはありません。したがって、これは機能しません (少なくとも私はそう思います)。初期化をテストしましたが、これも機能しません。

ヘルプ/ヒントをありがとう。

4

3 に答える 3

1

jQueryを使用してこのタスクを達成できます

すなわち

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

HTH

于 2013-07-18T11:28:26.063 に答える
0

keyCodefor enter を に13置き換え$.ui.keyCode.ENTERてみて、13機能するかどうかを確認してください。

于 2013-07-18T09:48:20.643 に答える