Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何防止新行显示在屏幕上_Jquery_Html_Ajax - Fatal编程技术网

Jquery 如何防止新行显示在屏幕上

Jquery 如何防止新行显示在屏幕上,jquery,html,ajax,Jquery,Html,Ajax,我有一个可编辑的,用户在其中添加评论。。。当用户点击“输入”时,他们的评论将被提交并发布在评论中。。。它的工作非常好,但问题是,当按下enter键时,光标首先移动到新行,然后被发布(在发布评论之前,请查看屏幕截图,光标在新行中显示数毫秒)。 这是我的密码: $(document).on('keyup','.addComment',function(e) { if (e.which == 13 && e.shiftKey!==true) { var id = $(this

我有一个可编辑的
,用户在其中添加评论。。。当用户点击“输入”时,他们的评论将被提交并发布在评论中。。。它的工作非常好,但问题是,当按下enter键时,光标首先移动到新行,然后被发布(在发布评论之前,请查看屏幕截图,光标在新行中显示数毫秒)。 这是我的密码:

$(document).on('keyup','.addComment',function(e) {

if (e.which == 13 && e.shiftKey!==true) {
    var id = $(this).attr('id').match(/\d+/);
    var p_id = Number(id);
    var comment_box = '#comment_box_'+id;
    var content = $(comment_box).text();
    content = content.replace(/\n/g, '<br>');

    if (content.length > 0) {
        $.ajax({
            type : 'POST',
            url  : 'update.php',
            data: ({content: content , id: p_id, act: "add_cmnt"}),
            success : function()
            {
                update_ca("comment_area_"+id);
                $(comment_box).text("");
            }
        }); // End of Ajax
    }
}

});
$(document).on('keyup','.addComment',函数(e){
if(e.which==13&&e.shiftKey!==true){
var id=$(this.attr('id').match(/\d+/);
var p_id=编号(id);
var comment_-box='#comment_-box.'+id;
var content=$(注释框).text();
内容=内容。替换(/\n/g,
); 如果(content.length>0){ $.ajax({ 键入:“POST”, url:'update.php', 数据:({content:content,id:p_id,act:“add_cmnt”}), 成功:函数() { 更新ca(“评论区”+id); $(注释框)。文本(“”); } });//Ajax的结束 } } });
现在我想要的是,当用户点击回车键时,光标不应该显示在新行中,评论应该立即发布(不显示新行) 还要注意,新行仅显示在屏幕上,而不存储在数据库中。 下面是
的代码:

<p contenteditable="true" class=" addComment" id="comment_box_some_unique_id">
</p>


只按enter键时,需要防止出现默认行为

由于您使用的是jQuery,请使用
return false
,它将在jQuery处理程序中计算为
e.preventDefault()
e.stopPropagation()


代码片段:

$(.comment”)。关于(“键控”,函数(e){
//检查是否按下了回车键。
如果(e.which==13){
//检查是否同时按下Shift键并保持默认行为。
//如果按下enter+shift,则会停止函数执行。
如果(e.shiftKey==true)返回true;
//你在这里发帖吗
console.log($(this.text().trim());//演示用途
//重要提示:防止默认行为。
返回false;
}
});

示例文本


只需使用jQuery方法来阻止enter键

$("#comment_box_some_unique_id").keypress(function(e){ return e.which != 13; });

e.preventDefault()
元素的代码。这可能会有帮助。@MakPo我已经编辑了这篇文章。。请现在检查请原谅我有点困惑。。。我必须把我的ajax方法放在哪里?你能再给我解释一下吗?我将非常感谢youHello@Shehzad,看看js代码中的注释,在那里它指定了应该包含的位置。我的问题是,在注释发布之前,光标首先显示光标在新行中的一瞥。。。然后发表评论(请看屏幕截图)希望你明白我的意思你从帖子中删除了图片。哦。。我没有删除图片,也不知道它是如何删除的。。。请看这里的图片:不要再回卷你的答案。反勾号用于标记内联代码,而不是用于标记任意单词。