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代码中的注释,在那里它指定了应该包含的位置。我的问题是,在注释发布之前,光标首先显示光标在新行中的一瞥。。。然后发表评论(请看屏幕截图)希望你明白我的意思你从帖子中删除了图片。哦。。我没有删除图片,也不知道它是如何删除的。。。请看这里的图片:不要再回卷你的答案。反勾号用于标记内联代码,而不是用于标记任意单词。