返回时启动jquery函数

返回时启动jquery函数,jquery,Jquery,我有一个简单的表单,当按下submit按钮时,它触发一个jQueryAjax请求,查询数据库并返回一些基本文本 它的工作很好,但我想做的是有进入按钮也提交表单,这似乎很容易,但它不适合我 表格如下: <form method="post" action="" name="statusform" id="statusform"> <fieldset id="quote_reference"> <legend>Che

我有一个简单的表单,当按下submit按钮时,它触发一个jQueryAjax请求,查询数据库并返回一些基本文本

它的工作很好,但我想做的是有进入按钮也提交表单,这似乎很容易,但它不适合我

表格如下:

    <form method="post" action="" name="statusform" id="statusform">
        <fieldset id="quote_reference">
            <legend>Check Quote Status:</legend>
            <div id="enter_ref_div">
                <br />
                <br />
                <br />
                <br />                  
                <label for="reference" accesskey="R">Your Reference Number:</label>
                <input name="ref" id="ref" type="text" size="5" value="" /> <br /><br />
                <button type="button" id="checkStatus" class="calc_btn">Check Status</button><div id="loader"><img class="loader_gif" src="assets/ajax-loader.gif" /></div>
            </div>
        </fieldset>
        <fieldset id="quote_status_div">
            <legend>Your Quote Status:</legend>     
            <div id="status_result"></div>
        </fieldset>
    </form>
现在,我只想在按下回车键时模拟上述功能。下面是我正在尝试的代码:

$(document).keypress(function(event){

var keycode = (event.keyCode ? event.keyCode : event.which);

    if(keycode == '13'){

        var refNo = $("#ref").val();

        $('#loader').fadeIn('fast');

        $.ajax({
            type: "POST",
            url: "functions/functions.php",
            data: "ref_no="+ refNo,
            success: function(data){
                $('#loader').fadeOut('fast');
                $('#quote_reference').slideUp('fast');
                $('#status_result').html(data);
                $('#quote_status_div').slideDown('fast'); 
            }
        });     
    }
}))

我在互联网上找到的所有信息都告诉我这应该行得通。你能帮我解释一下吗


感谢更改按钮以提交并使用提交方法

$('#checkStatus').submit(function() {
  // do ajax call here
  // ...
  return false;
}))

不要忘记:
返回false
阻止发送

更改按钮提交并使用提交方法

$('#checkStatus').submit(function() {
  // do ajax call here
  // ...
  return false;
}))

不要忘记:
返回false
阻止发送

尝试这种方法。。按Enter键时触发单击事件。。不需要重新编写代码

$(document).keypress(function(event){
   event.preventDefault();
   var keycode = (event.keyCode ? event.keyCode : event.which);
    if(keycode == '13'){

       $('#checkStatus').click();
    }
});
放置警报,并检查在按下enter键时是否看到该警报。。检查控制台部分中是否有任何错误

还可以尝试使用.on()将事件附加到元素

$(document).on('keypress' ,function(event){

$('#checkStatus').on('click' , function() {

试试这个方法。。按Enter键时触发单击事件。。不需要重新编写代码

$(document).keypress(function(event){
   event.preventDefault();
   var keycode = (event.keyCode ? event.keyCode : event.which);
    if(keycode == '13'){

       $('#checkStatus').click();
    }
});
放置警报,并检查在按下enter键时是否看到该警报。。检查控制台部分中是否有任何错误

还可以尝试使用.on()将事件附加到元素

$(document).on('keypress' ,function(event){

$('#checkStatus').on('click' , function() {

如果要阻止表单正常提交,需要在检查是否为enter键后调用event.PreventDefault()。

需要做的一件事是调用event.PreventDefault()检查是否为enter键后,如果要阻止表单正常提交。

感谢您的支持,它会触发onclick事件,但会阻止表单中的任何文本输入?我想出来了,我移动了“event.preventDefault();”在'if(keycode=='13'){'内部,现在可以工作了。感谢您的帮助Guysthans,它触发onclick事件,但阻止表单中的任何文本输入?我弄明白了,我移动了'event.preventDefault();'inside'if(keycode=='13'){'内部,现在可以工作了。感谢您的帮助