> 웹 프론트엔드 > JS 튜토리얼 > 텍스트박스 입력단어수 실시간 모니터링에 대한 자세한 설명

텍스트박스 입력단어수 실시간 모니터링에 대한 자세한 설명

小云云
풀어 주다: 2018-01-19 09:06:24
원래의
2229명이 탐색했습니다.

이 글은 텍스트 상자에 입력된 단어 수를 실시간으로 모니터링하기 위한 예제 코드를 주로 공유합니다. 참고할만한 가치가 있어 모든 분들께 도움이 되길 바랍니다. 편집자를 따라 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다.

요구 사항: 텍스트 입력 상자의 단어 수를 실시간으로 모니터링하고 제한합니다.

1. 현재 입력되는 단어 수를 실시간으로 모니터링하고, onkeyup 이벤트 방식을 직접 사용하고, 최대 길이를 추가합니다. 길이를 제한하려면 입력 상자에 속성을 지정하세요. 예:

<p>
  <textarea id="txt" maxlength="10"></textarea>
  <p><span id="txtNum">0</span>/10</p>
 </p>
로그인 후 복사
var txt = document.getElementById("txt");
 var txtNum = document.getElementById("txtNum");
 txt.addEventListener("keyup", function(){
  txtNum.textContent = txt.value.length;
 })
로그인 후 복사

이제 기본 모니터링 기능이 완료될 수 있습니다. 기존 문제는 영어를 입력할 때는 정상이지만 중국어를 입력할 때는 병음 길이에 따라 모니터링되는 숫자가 변경된다는 것입니다.

2. 해결 방법:

compositionstart 이벤트는 텍스트를 입력하기 전에 트리거됩니다(keydown 이벤트와 유사하지만 이 이벤트는 표시되는 여러 문자를 입력하기 전에만 발생하며 이러한 표시되는 문자를 입력하려면 필요할 수 있습니다. 일련의 키보드 조작, 음성 대체 입력 방법을 식별하거나 클릭합니다.

compositionend는 텍스트 입력에 해당하는 이벤트입니다.

이 두 속성은 "스위치"와 다소 유사합니다. 예를 들어 중국어 병음 입력을 시작하면 스위치가 켜지고 전체 텍스트 또는 텍스트 문자열이 입력된 후에는 모니터링되는 길이 값이 더 이상 변경되지 않습니다. 입력하면 스위치가 꺼지고 모니터링된 값이 얻어집니다. vue에서

var txt = document.getElementById("txt");
 var txtNum = document.getElementById("txtNum");
 var sw = false;  //定义关闭的开关
 txt.addEventListener("keyup", function(){
  if(sw == false){
   countTxt();
  }
 });
 txt.addEventListener("compositionstart", function(){
  sw = true;
 });
 txt.addEventListener("compositionend", function(){
  sw = false;
  countTxt();
 });
 function countTxt(){  //计数函数
  if(sw == false){  //只有开关关闭时,才赋值
   txtNum.textContent = txt.value.length;
  }
 }
로그인 후 복사

작성 방법:

template:

<textarea name="suggestions-text" id="textarea" cols="30" rows="10" maxlength="300" v-on:keyup="write()" v-on:compositionstart="importStart()" v-on:compositionend="importEnd()" v-model="textContent"></textarea>
<p class="counterNum">{{conterNum}}/300</p>
로그인 후 복사

data:

textContent: '',
conterNum: 0,
chnIpt: false,
로그인 후 복사

methods:

write() {
 let self = this;
 if (self.chnIpt == false) {
  self.conterNum = self.textContent.length;
 }
},
importStart() {
 this.chnIpt = true;
},
importEnd() {
 this.chnIpt = false;
 this.write();
}
로그인 후 복사

관련 권장 사항:

HTML5 중국어 텍스트 상자 입력으로 콘텐츠 프롬프트 제거

입력 텍스트 상자 입력 금지 구현 속성

js 다양한 유효성 검사 텍스트 상자 입력 형식(정규 표현식)_form 특수 효과

위 내용은 텍스트박스 입력단어수 실시간 모니터링에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿