开发者

textarea doesn't clear totally?

This code should clear the textarea when there is only spaces and breaklines but it leaves a breakline if you only press enter... I suspect my code that makes enter sendComment and shift+enter breakline for being the misbehaving part...

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> 

code for making enter send message and making shift+enter break line

    <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){  开发者_StackOverflow
      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>

Hope you can help me! Thanks in advance!


You just need to cancel the event to prevent it from bubbling upwards:

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

Then change the call to:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜