Javascript 按enter键时防止重新加载页面
我有以下输入字段:Javascript 按enter键时防止重新加载页面,javascript,Javascript,我有以下输入字段: <input type="text" id="txt_comment" class="form-control" placeholder="Skriv kommentar"> 但是,当我按enter键时,它仍然会重新加载页面。谁能告诉我我做错了什么 更新 function addComment() { var comment = $('#txt_comment').val(); { $.ajax({
<input type="text" id="txt_comment" class="form-control" placeholder="Skriv kommentar">
但是,当我按enter键时,它仍然会重新加载页面。谁能告诉我我做错了什么
更新
function addComment()
{
var comment = $('#txt_comment').val();
{
$.ajax({
type: 'POST',
url: '/Comment/addComment',
dataType: 'json',
data: {
request: 'ajax',
reciver:user_id,
comment: comment
},
success: function (data)
{
$('#comment_list').prepend(
' <li class="list-group-item animated fadeInRightBig">'+
' <p><b class="text">'+data['sender']+'</b>:'+
'<br/>'+comment+' </p>'+
'<input type="hidden" class="timestamp" value="'+data["timestamp"]+'">'+
' <small class="block text-muted timeSmall"><i class="fa fa-clock-o"></i></small>'+
'</li>'
)
$('.timestamp').each(function()
{
var text = $(this).next()
var timer = $(this).val();
var new_text = moment(timer, "YYYY-MM-DD- HH:m:ss").fromNow();
text.html(new_text);
});
$('#txt_comment').val('');
}
})
}
}
仍在重新加载页面返回在默认调用之前触发,只需重新排列它们:
$('#txt_comment').keyup(function(e){
e.preventDefault();
if(e.keyCode === 13) {
addComment();
return false;
}
});
请改用按键功能:
$('#txt_comment').keydown(function(e){
if(e.keyCode == 13)
{
addComment();
return false;
}
e.preventDefault(); });
快速参考:要解决此问题,请在表单中添加一个隐藏的输入字段。 这是一件来自: 当表单中只有一个单行文本输入字段时,用户代理应接受在该字段中输入作为提交表单的请求
因为如果按下enter键,您将停止执行,并且不会调用e.preventDefault。在返回False之前,将其放入if。你能发布你的addComment()函数吗?可能与@andy重复-这将修复它。顺便说一句:既然你使用jquery:不要使用
e.keyCode
来获取按下的键,请改用addComment函数到底在做什么?
$('#txt_comment').keyup(function(e){
e.preventDefault();
if(e.keyCode === 13) {
addComment();
return false;
}
});
$('#txt_comment').keydown(function(e){
if(e.keyCode == 13)
{
addComment();
return false;
}
e.preventDefault(); });