以下代码正在多次运行。请找我错误。 响应警报没有停止。
$(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;
});
});
答案 0 :(得分:2)
尝试在keyup处理程序中阻止默认值:
$("input").keyup(function(e)
if (e.which == 13) {
e.preventDefault();
$('form').submit();
}
});
在表单的最后一个输入字段中按 Return 时的默认操作是提交它。因此,如果您没有阻止默认设置,则会根据您的代码提交,并默认提交。
你也可以摆脱你的keyup处理程序,因为它只是执行默认操作。
另一种可能性是您的网页上有多个表单。 $('form').submit()
将提交所有这些,并且提交处理程序将针对所有这些提交。如果您只想提交包含按下返回的输入的表单,请使用:
$(this).closest("form").submit();
同样,这是按 Return 的默认行为。