keydown事件删除我的div内容

时间:2015-05-12 20:01:43

标签: javascript jquery html

在我的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)... 。 这怎么可能???任何想法????

1 个答案:

答案 0 :(得分:1)

您是否尝试过防止默认,有时使用回车键可能会产生不良行为:

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