1

我想编写一个代码来检查textarea中的文本是否为ascii,如果它是ascii,则将最大长度设置为160,如果没有将最大长度设置为70,我也希望在用户键入时进行检查文字,我试过了,但没有用,,,有什么想法吗?

<script type="text/javascript">
var maxLength=160;
var Ascii=true;


 function isAscii(el) {
     var i=0;
 while ( i < = el.value.length ){
 if(el.value[i].charCodeAt(0) >= 0 && el.value[i]charCodeAt(0) <= 127 ){
 i=i+1;
 } 
 else 
 {
 return false
} 
}
return true;
  }



  function characterCount(el) {

if ( isAscii(el)){
Ascii=true;
maxLength=160;
}
else {
Ascii=false
maxLength=70;
}




var charCount = document.getElementById('charCount');
if (el.value.length > maxLength) el.value = el.value.substring(0,maxLength);
if (charCount) charCount.innerHTML = maxLength - el.value.length;
return true;
 }


</script>

  <textarea name='text' onKeyUp='characterCount(this)' id='textarea' cols='60'       rows='10'> </textarea>
4

1 回答 1

1
    <script type="text/javascript">
var maxLength=160;
var Ascii=true;


 function isAscii(el) {
     var i=0;
 while ( i < el.value.length ){
 alert(el.value[i]);
 if(el.value[i].charCodeAt(0) >= 0 && el.value[i].charCodeAt(0) <= 127 ){
 i=i+1;
 } 
 else 
 {
 return false
} 
}
return true;
  }



  function characterCount(el) {

if ( isAscii(el)){
Ascii=true;
maxLength=160;
}
else {
alert("non-ascii");
Ascii=false
maxLength=70;
}





return true;
 }


</script>
<body>
  <textarea name='text' onKeyUp='characterCount(this)' id='textarea' cols='60' > </textarea>
 </body>

上面针对 ascii 非 ascii 字符的代码警报,我发现在长度上更改文本框的长度没有意义,但无论如何希望你现在可以这样做。

代码变化:

1)el.value[i].charCodeAt(0) -> .(dot) is missing

2) while ( i < el.value.length ){

在上面的陈述中,您使用了<=这又是错误的。

于 2013-07-03T08:33:53.833 回答