Javascript 检测AUI对话框中按下的Enter键
我想检测我加载到对话框中的html文本字段是否使用了enter 如果按enter键,我想模拟单击Javascript 检测AUI对话框中按下的Enter键,javascript,html,liferay,liferay-aui,Javascript,Html,Liferay,Liferay Aui,我想检测我加载到对话框中的html文本字段是否使用了enter 如果按enter键,我想模拟单击保存-按钮 我尝试了很多方法,基本上都是围绕着这个代码: $(document).keypress(function(e) { if (e.keyCode == $.ui.keyCode.ENTER) { $("#resultTextArea").val("Enter gedrueckt"); $(this).find("button:saveBt
保存
-按钮
我尝试了很多方法,基本上都是围绕着这个代码:
$(document).keypress(function(e) {
if (e.keyCode == $.ui.keyCode.ENTER) {
$("#resultTextArea").val("Enter gedrueckt");
$(this).find("button:saveBtn").trigger("click");
}
});
下面是AUI对话框(我在其中尝试了上述代码)
这是定义对话框主体的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>
$(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*/
姓名:
我查看了AlloyUI的API,发现:
在“属性”下:没有在我找到的每个教程/代码中使用的open。
因此,这是行不通的(至少我认为是这样)。我测试了初始化,但这也不起作用
谢谢您的帮助/提示。enter的
keyCode
是13
尝试替换$.ui.keyCode。用13
输入,并检查它是否有效。您可以使用jQuery来完成此任务
i、 e
HTH它现在可以工作了,这是我的代码(按下enter键时,它的功能与savebtn相同,并关闭对话框):
我刚试过,它也用13。但这也不起作用。在我的代码中测试了13个(上面的一个),没有work@Wandang您能告诉我控制台中是否有错误吗?没有调试输出。它不会到达这一行“$”(“#resultTextArea”).val(“Enter gedrueckt”);`我使用它进行调试。尝试将对话框
替换为$(文档)
。仍然不工作。我可能找到了这不起作用的原因。要编辑原始帖子我需要把它放在哪里?这在打开的函数体中不起作用。您可以将此代码放在aui块之外…并将警报放在该函数内部,以获得方法调用或不调用的通知。这对我不起作用。我将代码块放在“AUI()”的下面/后面。使用('AUI-dialog',liferay portlet url',函数(A){}”将我的代码放在这个代码$(document).ready(函数(){//my code});不起作用,因为savebtn是我想通过enterkey单击的按钮。因此,在btn上放置enter检测没有意义。。。
$("#saveBtn").keypress(function(event){
var keycode = (event.keyCode ? event.keyCode : event.which);
if (keycode == '13') {
// do what you want
}
});
$(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*/