准备好javascript文件一遍又一遍

时间:2018-02-13 04:53:02

标签: javascript jquery

以下代码正在多次运行。请找我错误。 响应警报没有停止。

$(document).ready(function(){

        $("input").keyup(function(e){
            if(e.which == 13){
                $('form').submit();
            }
        });

        $('form').submit(function(){
            var msgs = $("input").val();
            $.post('message.php?action=sent&msg='+msgs,function(response){
               document.getElementById('temp').reset();
               alert(response);
            });
            return false;
        });
    });

1 个答案:

答案 0 :(得分:2)

尝试在keyup处理程序中阻止默认值:

$("input").keyup(function(e)
    if (e.which == 13) {
        e.preventDefault();
        $('form').submit();
    }
});

在表单的最后一个输入字段中按 Return 时的默认操作是提交它。因此,如果您没有阻止默认设置,则会根据您的代码提交,并默认提交。

你也可以摆脱你的keyup处理程序,因为它只是执行默认操作。

另一种可能性是您的网页上有多个表单。 $('form').submit()将提交所有这些,并且提交处理程序将针对所有这些提交。如果您只想提交包含按下返回的输入的表单,请使用:

$(this).closest("form").submit();

同样,这是按 Return 的默认行为。