我的php页面中有这个代码:
<div id="chatarea">
<div id="jqarea">
<div class="chatboxcontent"></div>
</div>
</div>
<div class="chatbox">
<p>
<input type="text" name="digit" id="digit" size="50" onkeydown="javascript:checkChatBoxInputKey(event,document.getElementById('digit').value,'<?php echo $cuser ?>')" />
</p>
<p>
<button class="btn" title="send" type="button" onclick="filltxtarea(document.getElementById('digit').value,'<?php echo $cuser ?>')">
<span>Send</span>
</button>
</p>
</div>
在我的javascript文件中,我有这个功能:
function filltxtarea(desctext, uchat) {
$(".chatboxcontent").append('<div class=chatboxmessage><span class="chatboxmessagefrom">' + uchat + ': </span><span class="chatboxmessagecontent">' + desctext + '</span></div>');
$('#digit').val('');
$('#digit').focus();
alert("ok2");
jQuery.ajax({
type: 'POST',
url: 'chat.php',
dataType: 'json',
data: {
"newrow": "desctext"
},
success: function(response) {
alert(response);
}
})
}
function checkChatBoxInputKey(event, desctext, uchat) {
if (event.keyCode == 13 && event.shiftKey == 0) {
alert("ok1");
filltxtarea(desctext, uchat);
}
}
该代码适用于onclick
,但我对onkeypressdown
有疑问。当我使用Enter
键在聊天区域中写入时,但完成后filltxtarea
功能会删除聊天室内容文本。为什么会这样?
答案 0 :(得分:0)
以下解决方案经过测试,效果很好。
首先:
删除数字的onkeydown事件。它应该是这样的:
<input type="text" name="digit" id="digit" size="50" />
删除按钮的onclick事件并设置id属性。
<button class="btn" id="btnClick" title="send" type="button" >
创建隐藏在html中的输入以存储$ cuser php var
<input type="hidden" name="cuser" id="cuser" val="<?php echo $cuser ?>" />
将您的javascript替换为以下内容:
$(document).ready(function(){
$("#digit").keydown(function(event){
if (event.keyCode == 13 && event.shiftKey == 0) {
alert("ok1");
filltxtarea($("#digit").val());
}
});
$("#btnClick").click(function(){
filltxtarea($("#digit").val());
});
function filltxtarea(desctext) {
var uchat = $("#cuser").val();
$(".chatboxcontent").append('<div class=chatboxmessage><span class="chatboxmessagefrom">' + uchat + ': </span><span class="chatboxmessagecontent">' + desctext + '</span></div>');
$('#digit').val('');
$('#digit').focus();
alert("ok2");
jQuery.ajax({
type: 'POST',
url: 'chat.php',
dataType: 'json',
data: {
"newrow": "desctext"
},
success: function(response) {
alert(response);
}
})
}
});
有任何疑问请告诉我。
希望有所帮助。