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(); });