按下输入键时阻止页面重新加载

时间:2014-10-15 11:41:09

标签: javascript

我有以下输入字段:

<input type="text" id="txt_comment" class="form-control" placeholder="Skriv kommentar"> 

这个我有以下代码

    $('#txt_comment').keyup(function(e){
    if(e.keyCode == 13)
    {
        addComment();
        return false;
    }
    e.preventDefault();
});

然而,当我按下输入时,它仍然重新加载页面。谁能告诉我我做错了什么?

更新

    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){
    if(e.keyCode === 13)
    {
        addComment();
        e.preventDefault();
        return false;
    }
});

仍有网页重新加载

3 个答案:

答案 0 :(得分:1)

供快速参考:要解决此问题,请在表单中添加隐藏的输入字段。

这是an older version of HTML

的遗物
  

如果表单中只有一个单行文本输入字段,则用户代理应接受该字段中的Enter作为提交表单的请求。

答案 1 :(得分:0)

返回在preventDefault调用之前触发,只需重新排列它们:

$('#txt_comment').keyup(function(e){
    e.preventDefault();
    if(e.keyCode === 13) {
        addComment();
        return false;
    }
});

答案 2 :(得分:0)

改为使用keydown函数:

 $('#txt_comment').keydown(function(e){
    if(e.keyCode == 13)
    {
        addComment();
        return false;
    }
    e.preventDefault(); });
相关问题