我有以下输入字段:
<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;
}
});
仍有网页重新加载
答案 0 :(得分:1)
供快速参考:要解决此问题,请在表单中添加隐藏的输入字段。
的遗物如果表单中只有一个单行文本输入字段,则用户代理应接受该字段中的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(); });