[英]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... 当只有空格和换行符时,此代码应清除文本区域,但是如果您仅按Enter键,它将留下换行符。我怀疑我的代码使enter sendComment和shift + enter换行符成为行为不当的部分...
Javascript: 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 输入发送消息并按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>
HTML: 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);'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.