【发布时间】:2013-08-25 18:25:00
【问题描述】:
我正在尝试使用 AJAX 提交表单,该表单是 jQuery UI Dialog 的内容。
我使用与jQuery's documentation中相同的代码
但是我修改了表单,所以只有一个文本输入,所以表单看起来像这样:
<form>
<fieldset>
<label for="answer"><strong>Your Answer : </strong></label>
<input type="text" name="answer" id="answer" class="text ui-widget-content ui-corner-all" />
</fieldset>
</form>
当我单击确定(或创建用户)按钮时,它可以工作,即使用 AJAX 提交答案,但我也希望它在按下 Enter 键时工作。
现在,当我在input#answer 中输入asd 并按回车键时,URL 如下所示:
mysite.com/?answer=asd
我尝试添加功能:
$('#answer').keypress(function(e) {
if (e.keyCode == $.ui.keyCode.ENTER) {
alert("enter pressed on answer input");
}
});
这次它会提醒"enter pressed on answer input",然后转换 URL。然而,我不希望它修改 URL,如何删除该功能?它是在哪里定义的?
简而言之,我希望回车键只做我想做的事情。
感谢您的帮助!
编辑:
在jQuery.dialog(); 中添加的按钮(在鼠标单击时起作用)如下所示:
$( "#dialog-form" ).dialog({
autoOpen: false,
height: 300,
width: 350,
modal: true,
buttons: {
Answer: function() {
var answer = $("#dialog-form #answer").val();
alert("your answer : "+answer);
submit_with_ajax(answer);
},
Cancel: function() {
$( this ).dialog( "close" );
}
},
close: function() {
allFields.val( "" ).removeClass( "ui-state-error" );
alert("asd");
}
});
【问题讨论】:
-
听起来像一个错误。也许你可以阻止默认(
e.preventDefault())并假装点击所述按钮($('thingy').click())。 -
您使用的是提交按钮吗??还是没有它???
-
@Sumurai8 谢谢!无需伪造点击,我可以在输入时调用一个函数。我现在将检查如何使用 preventDefault。或者您可以将其发布为答案:)
-
@Gokul 我在 jQuery 代码中添加按钮。我现在将在我的问题中添加代码。
-
e.preventDefault() 是对的,防止提交表单。或者您可以使用
<form onsubmit="return false">根本不提交。
标签: javascript jquery ajax forms jquery-ui