Javascript jQuery UI对话框在Enter键上更改URL
我试图用AJAX提交一个表单,表单是jQueryUI对话框的内容 我使用与中相同的代码 但是我修改了表单,因此只有一个文本输入,因此表单如下所示:Javascript jQuery UI对话框在Enter键上更改URL,javascript,jquery,ajax,forms,jquery-ui,Javascript,Jquery,Ajax,Forms,Jquery Ui,我试图用AJAX提交一个表单,表单是jQueryUI对话框的内容 我使用与中相同的代码 但是我修改了表单,因此只有一个文本输入,因此表单如下所示: <form> <fieldset> <label for="answer"><strong>Your Answer : </strong></label> <input type="text" name="answer" id="answer" clas
<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>
mysite.com/?answer=asd
$( "#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");
}
});
我尝试添加函数:
$('#answer').keypress(function(e) {
if (e.keyCode == $.ui.keyCode.ENTER) {
alert("enter pressed on answer input");
}
});
这一次,它会提醒“在应答输入时按enter键”
,然后转换URL。然而,我不希望它修改URL,我如何删除该函数?它的定义是什么
简而言之,我希望enter键只执行我希望它执行的操作
谢谢你的帮助
编辑:
在jQuery.dialog()中添加了鼠标点击的按钮代码>如下所示:
<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>
mysite.com/?answer=asd
$( "#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");
}
});
就像你的
<form>
<!-- <form onsubmit="return false"> is an optional -->
<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
提交或请求
希望它能帮助…
试试这个
在“输入答案”中输入值,然后单击“输入”
$(document).ready(function () {
$(document).on('keypress',function(e)
{
if(e.which==13 && $("#answer").val().length>0)
{
alert("hi"); // do your ajax call here
}
});
});
希望这有帮助您可以使用event.preventDefault()
阻止事件的默认操作。我不能100%确定表单在jQueryUI中是什么样子,以及是否可以防止默认的按键。作为替代方案,您可以防止submit
事件的默认操作,正如您可能预期的那样,该操作会阻止表单提交(根据Gokul的回答)。有关event.preventDefault()
的更多信息,请参阅
--或--
听起来像个虫子。也许你可以阻止默认(e.preventDefault()
)并假装点击所述按钮($('thingy')。点击()
)。你使用的是提交按钮吗??还是没有它?@Sumurai8谢谢!不需要假装点击,我可以在回车键上调用一个函数。我现在将查看如何使用preventDefault。或者您可以将其作为答案发布:)@Gokul我正在jQuery代码中添加按钮。我现在将在我的问题中添加代码。e.preventDefault()是正确的,以防止提交表单。或者您可以使用
完全不提交。它肯定会提交。然而,出于某种原因,我不喜欢使用html属性,我想用JavaScript处理所有事情,对于可重用代码,我想:)如果sumurai8不发布他的答案,我会接受你的答案。应该是这样,但在我的情况下,表单在jQuery UI的模式对话框中,而不是在普通html中。无论如何谢谢你!