我怎样才能使用' onkeydown'和' onclick'用jquery?

时间:2015-05-11 16:19:02

标签: javascript php jquery

我的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功能会删除聊天室内容文本。为什么会这样?

1 个答案:

答案 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);
            }
        })
    }

 });

有任何疑问请告诉我。

希望有所帮助。