我希望能够按下" ENTER"让对话框执行与提交按钮相同的操作。
我在这里找到了类似的问题:Submit jQuery UI dialog on <Enter>。我在代码中添加了一些解决方案,并没有解决问题。
这是我到目前为止所做的:
按钮:
<button id="myButton">Execute Tasks</button>
对话框本身:
<div id='myDialog' title="New Task(s):">
<p>Enter the name of the tasks you wish to execute</p>
<form>
<label for="name">
<input type="text" name="name" id="name" />
</label>
</form>
</div>
内部脚本标记:
$('#myButton').click( function() {
$( "#myDialog" ).dialog({
open: function(){
$("#myDialog").unbind('submit');
$("#myDialog").submit(function() {
$("#myDialog").parents('.ui-dialog').first().find('.ui-button').first().click();
return false;
});
},
buttons: {
"Run tasks": function() { .... },
"Cancel":function() { $(this).dialog("close"); };
},
});
});
答案 0 :(得分:5)
您可以在打开的对话框中绑定表单提交事件。在文本框中按Enter将自动触发表单提交。
您还可以在单击“运行任务”按钮时触发提交事件。
jsFiddle:http://jsfiddle.net/CodingDawg/dk7hT/
$('#myButton').click(function () {
$("#myDialog").dialog({
open: function () {
$(this).off('submit').on('submit', function () {
//Run tasks
//$(this).dialog('close'); //You can Close the dialog after running the tasks.
return false;
});
},
buttons: {
"Run tasks": function () {
$(this).find('form').submit();
},
"Cancel": function () {
$(this).dialog("close");
}
}
});
});
答案 1 :(得分:4)
要实现您的目标并不难,但您的代码并非您所要求的。我会尽量简化它:
此代码将在提交表单时执行:
$( "#MyForm" ).submit(function( event ) {
alert( "Handler for .submit() called." ); // Your code should be here
event.preventDefault();
});
查看我给jquery选择器的ID - $( "#MyForm" )
- 它是 FORM ELEMENT - 您没有指定表单ID。
如果你想将ENTER键绑定到提交表单,即使你需要这个代码:
$(document).keypress(function(event) {
if (event.which == 13) {
event.preventDefault();
$("#MyForm").submit();
}
});
我会重新编辑您的HTML,以便您可以轻松了解它的外观:
<div id='myDialog' title="New Task(s):">
<p>Enter the name of the tasks you wish to execute</p>
<form id="MyForm">
<label for="name">My Label</label>
<input type="text" name="name" id="name" />
</form>
</div>