Javascript函数在jquery中不起作用
我想计算sms应用程序的键入字符字节数。如果键入ASCII,则计1字节;对于非ASCII,则计2字节。如果字符字节总数超过80字节,则脚本应发出警报(“您已达到80字节以上”),在此之后,脚本应从末尾开始剪切,直到小于80字节。但是,cutBylen()函数似乎在此脚本中不起作用。它只是发出警报,但不会切断字符串。有人能告诉我问题出在哪里吗?多谢各位Javascript函数在jquery中不起作用,javascript,jquery,function,sms,Javascript,Jquery,Function,Sms,我想计算sms应用程序的键入字符字节数。如果键入ASCII,则计1字节;对于非ASCII,则计2字节。如果字符字节总数超过80字节,则脚本应发出警报(“您已达到80字节以上”),在此之后,脚本应从末尾开始剪切,直到小于80字节。但是,cutBylen()函数似乎在此脚本中不起作用。它只是发出警报,但不会切断字符串。有人能告诉我问题出在哪里吗?多谢各位 <script> function countBytes( s
<script>
function countBytes( str ) {
var count = 0;
for ( var i = 0; i < str.length; i++ ) {
var onechar = str.charAt( i );
if ( str.charCodeAt( i ) >= 128 ) {
count += 2;
} else if ( onechar != '\r' ) {
count++;
}
}
return count;
}
</script>
<script>
function cutByLen( str, byteLen ) {
var tmpStr = str;
while (countBytes( tmpStr ) > byteLen) {
var len = tmpStr.length;
tmpStr = tmpStr.substr( 0, len - 1 );
}
return tmpStr;
}
</script>
<script>
$(document).ready(function() {
$("#smstext1").keyup(function(){
var text = $(this).val();
var byteLen = countBytes(text);
var len = text.length;
if (byteLen >80){
alert('You have reached over 80bytes');
var tmpStr = cutByLen( text, byteLen );
$(this).val(tmpStr);
}
});
});
</script>
函数countBytes(str){
var计数=0;
对于(变量i=0;i=128){
计数+=2;
}else if(onechar!='\r'){
计数++;
}
}
返回计数;
}
功能cutByLen(str,byteLen){
var-tmpStr=str;
while(countBytes(tmpStr)>byteLen){
var len=tmpStr.长度;
tmpStr=tmpStr.substr(0,len-1);
}
返回tmpStr;
}
$(文档).ready(函数(){
$(“#smstext1”).keyup(函数(){
var text=$(this.val();
var byteLen=countBytes(文本);
var len=text.length;
如果(byteLen>80){
警报(“您已达到80字节以上”);
var tmpStr=cutByLen(文本,byteLen);
$(this.val)(tmpStr);
}
});
});
您有
var tmpStr = cutByLen( text, byteLen );
其中,byteLen
是文本的长度,因此如果字符串比自身长,它会剪切字符串,这显然没有任何作用。你的意思可能是
var tmpStr = cutByLen( text, 80 );
完美的这真的奏效了。我在调试过程中非常沮丧,什么也没找到。我知道这应该很简单。再次感谢你,伙计:)。