textarea不完全清楚?

时间:2011-09-06 06:54:03

标签: javascript jquery

当只有空格和分隔线时,此代码应该清除textarea但是如果你只按回车就会留下一个断裂线...我怀疑我的代码使得输入sendComment和shift +输入breakline作为行为不端的部分......

使用Javascript:

<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> 

输入发送消息并使shift +输入断行

的代码
    <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>

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>
希望你能帮助我!提前谢谢!

1 个答案:

答案 0 :(得分: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);'