在我的JavaScript文件中,我创建了2个事件; 按键并单击;
当您单击按钮或按Enter键时,输入字段中写入的文本将显示在div
文本区域中;此代码适用于按钮单击事件,但在按键事件中无法正常工作。
HTML code:
<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
任何工作时,我可以看到alert(1)和alert(2)但是使用key-down它会在db中创建一个新行,但我只有alert(0)... 。 这怎么可能???任何想法????
答案 0 :(得分:1)
您是否尝试过防止默认,有时使用回车键可能会产生不良行为:
$("#digit").keydown(function(event) {
if (event.which == 13) {
event.preventDefault();
filltxtarea($("#digit").val());
}
});