Javascript函数在jquery中不起作用

Javascript函数在jquery中不起作用,javascript,jquery,function,sms,Javascript,Jquery,Function,Sms,我想计算sms应用程序的键入字符字节数。如果键入ASCII,则计1字节;对于非ASCII,则计2字节。如果字符字节总数超过80字节,则脚本应发出警报(“您已达到80字节以上”),在此之后,脚本应从末尾开始剪切,直到小于80字节。但是,cutBylen()函数似乎在此脚本中不起作用。它只是发出警报,但不会切断字符串。有人能告诉我问题出在哪里吗?多谢各位 <script> function countBytes( s

我想计算sms应用程序的键入字符字节数。如果键入ASCII,则计1字节;对于非ASCII,则计2字节。如果字符字节总数超过80字节,则脚本应发出警报(“您已达到80字节以上”),在此之后,脚本应从末尾开始剪切,直到小于80字节。但是,cutBylen()函数似乎在此脚本中不起作用。它只是发出警报,但不会切断字符串。有人能告诉我问题出在哪里吗?多谢各位

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

完美的这真的奏效了。我在调试过程中非常沮丧,什么也没找到。我知道这应该很简单。再次感谢你,伙计:)。