2011-09-06 82 views
0

這個代碼應該清除文本區域時,只有空格和breaklines,但如果你只按下enter鍵就會離開breakline ...我懷疑我的代碼使得進入sendComment,並且shift +進入breakline作爲行爲不當的部分...textarea不完全清除?

的Javascript:製作進入發送短信,使Shift + Enter斷線

<script type='text/javascript'> 
    <!-- 
    var isShift=null; 
    var isNN = (navigator.appName.indexOf("Netscape")!=-1); 
    var OP = (navigator.appName.indexOf("Opera")!=-1); 
    if (OP) isNN=true; 

    var key; 
    function shift(event){ 
     key = (isNN) ? event.which : event.keyCode; 
     if (key==16)isShift=1; 
    } 

    function process(event,id){ 
     key = (isNN) ? event.which : event.keyCode; 
     if(document.layers&&event.modifiers==4){ 
     isShift=1; 
     } 
     if (key==13&&isShift!=1){ 
     sendComment(id); 
     } 
     if (key!=16) isShift=null; 
    } 
    //--> 
    </script> 

<script type='text/javascript'> 
function sendComment(id) 
{ 
    var comMessage = $("#com"+id); 

    var cmessage = comMessage.val(); 

    cmessage = cmessage.replace(/(\r\n|\n|\r)/gm,""); 
    cmessage = cmessage.split(' ').join(''); 

    if(cmessage == "") 
    { 
    $("#comstatus"+id).html("<br><b style='color:red;border:2px solid red;'>Please type a message</b><br><br>").show().fadeOut(6000); 
    $('#com'+id).text(cmessage); 
    $('#com'+id).val(cmessage); 
    $("#com"+id).html(cmessage); 
    $("#com"+id).attr("value", cmessage); 
    } 
} 
</script> 

代碼HTML:

<textarea onkeypress='process(event, $idMe)' onkeydown='shift(event)' onfocus='commentboxfocus($idMe)' onblur='commentboxblur($idMe)' class='text' id='com$idMe' wrap='hard' style='wrap:hard;height:30px;width:100%;position:relative' name='comment'>Type a comment!</textarea> 

希望你能幫幫我!提前致謝!

+0

請更清楚自己的目標。很難從代碼中辨別出你的意圖,而這些代碼在你承認的情況下並沒有達到預期的效果! –

+0

即時通訊對不起,即時通訊不是非常專業的jQuery/JavaScript,但是,我不知道你在哪裏做brakeline,如果組合是Shift +輸入 – Throoze

回答

1

你只需要取消事件,以防止其向上冒泡:

if(cmessage == "") 
{ 
    $("#comstatus"+id).html("<br><b style='color:red;border:2px solid red;'>Please type a message</b><br><br>").show().fadeOut(6000); 
    $('#com'+id).val(cmessage); 
    return false; 
} 

接着,電話更改爲:

onkeypress='return process(event, $idMe);' 
+0

你救了我的生命,你是一個英雄! – GuyFromOverThere