javascript - keydown 事件删除我的 div 内容

标签 javascript jquery html

在我的 JavaScript 文件中,我创建了 2 个事件; 按下按键并单击;

当您点击按钮或按 Enter 键时,输入字段中写入的文本将显示在 div 文本区域中;此代码适用于按钮单击事件,但在按键事件中无法正常工作。

HTML 代码:

<div id="chatarea">
  <div id="jqarea">
    <div class="chatboxcontent"></div>                      
  </div>
</div>
<div class="chatbox">                   
  <input type="hidden" name="cfrom" id="cfrom" value="<?php echo $cuser; ?>" ></input>
  <p><input type="text" name="digit" id="digit" size="50"/></p>             
  <p><button class="btn" title="send" type="button">                    
     <span>Send</span>
      </button>
  </p>                                      
</div>          

Javascript代码

$("#digit").keydown(function(event){
        if (event.which == 13) {                
            filltxtarea($("#digit").val());         
        }
});

$(".btn").click(function(){     
    filltxtarea($("#digit").val());             
}); 

function filltxtarea(desctext) {    
    var uchat = $("#cfrom").val();      
    //$(".chatboxcontent").append('<div class=chatboxmessage><span class="chatboxmessagefrom">' + uchat + ': </span><span class="chatboxmessagecontent">' + desctext + '</span></div>');        
    $('#digit').val('');
    $('#digit').focus();        
    $.post('chat.php','action=newrow&message='+desctext,function(data){
        if (data==='failed'){alert("error in mysqli")};
    });     
}
});
function chatHeartbeat(){               
$.ajax({        
url: 'chat.php?action=chatheartbeat',    
dataType: 'json', 
cache: false,
success: function(data) {                       
    alert("0");
    $.each(data.items, function(i,item){            
        if(item){       
            alert("1");
            $(".chatboxcontent").append('<div class=chatboxmessage><span class="chatboxmessagefrom">'+item.f+': </span><span class="chatboxmessagecontent">'+item.m+'</span></div>');
        }
    });                 
}   
});
setTimeout('chatHeartbeat();',1000);
}

当我使用click任何东西时,我可以看到警报(1)和警报(2),但通过按键它会在数据库中创建一个新行,但我只有警报(0) .... 这怎么可能???有什么想法吗???

最佳答案

您是否尝试过阻止默认设置,有时使用 Enter 键可能会出现不需要的行为:

$("#digit").keydown(function(event) {
    if (event.which == 13) {
        event.preventDefault();
        filltxtarea($("#digit").val());
    }
});

关于javascript - keydown 事件删除我的 div 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30200379/

相关文章:

html - .css 不喜欢做 calc()?

css - 如何使 float <div> 使用其最大宽度

javascript - 从命令行触发 ASP.Net MVC 捆绑

javascript - 使用 javascript 创建 jsonstring

javascript - 将 zip 文件返回到 angularjs 进行下载

javascript - 如何检查 JavaScript 对象中嵌套键是否可用

jquery 设置 html 效果

jQuery blockUI 自动重定向

javascript - Closest() 用于从前一个 td 获取 html 值

php - 变量 PHP 下载头文件名?