TextArea를 텍스트 필드라고도하며 텍스트 영역이라고도하며 스크롤 막대가있는 멀티 라인 텍스트 입력 컨트롤이며 종종 웹 페이지 제출 양식에 사용됩니다. 단일 라인 텍스트 상자 텍스트 컨트롤과 달리 MaxLength 속성을 통한 단어 수를 제한 할 수 없으므로이 목적을 위해서는 사전 설정 요구 사항을 충족시키기 위해이를 제한해야합니다.
일반적인 관행은 #script 언어를 사용하여 Textarea 텍스트 필드에서 단어 입력 한계를 구현하는 것입니다. ID TXTA1이있는 TextArea 텍스트 영역이 있다고 가정하면 키보드의 입력 수를 10 자 (한자 또는 기타 작은 코너 문자)로 제한 할 수 있습니다.
<script language = "#"#"type ="text/ecmascript "> wind }} </script>
원칙은 키 다운 이벤트를 모니터링하여 지정된 ID 번호의 텍스트 영역을 모니터링하는 것입니다. 키보드 입력 만 제한 할 수 있다고 상상할 수 있습니다. 사용자가 마우스를 마우스 오른쪽 버튼으로 클릭하여 클립 보드의 텍스트를 붙여 넣으면 단어 수를 제어 할 수 없습니다.
키보드 입력을 통해 위의 텍스트 영역에 10 개의 단어 만 입력 할 수 있습니다. 그러나 우리의 목표는 달성되지 않았습니다! 텍스트를 자연스럽게 복사하고 오른쪽 마우스 버튼으로 붙여 넣어 무슨 일이 일어나고 있는지 확인하십시오.
인터넷에서 위에서 언급 한 것과 같은 다른 JS 스크립트를 찾을 수 있습니다. 아무리 우수하더라도 원칙은 동일합니다. Keydown, KeyUp 또는 KeyPress와 같은 키보드 키를 작동하여 텍스트 영역의 입력 모니터링 해오면 오른쪽 버튼을 버리지 못하면 오른쪽 버튼이 붙어 있습니다. 이러한 이유로 Textarea의 단어 수를 제한 해야하는 경우 웹 페이지에 다른 잠금 잠금 장치를 추가해야합니다. 오른쪽 클릭을 비활성화하여 의심 할 여지없이 추가 오버 헤드가 필요하며 웹 페이지 제작자가하지 않을 수도 있습니다. 실제로 OnPropertyChange 속성을 사용하는 더 쉬운 방법이 있습니다.
OnPropertyChange는 미리 정해진 요소의 값을 판단하는 데 사용될 수 있습니다. 요소의 값이 변경되면 판단 이벤트가 트리거됩니다. 모니터링 된 요소의 값에만 관심이 있고 입력의 소스를 피하기 때문에 비교적 이상적인 방식으로 단어 수를 제한하는 목적을 달성 할 수 있습니다. JS 카테고리에 속하며 중첩 된 Form Box Area 담당자에 사용할 수 있습니다. 다음은 코드 및 효과 스타일입니다. 위의 입력을 테스트 할 수 있습니다. 당신은 그것이 실제로 그 목적을 달성한다는 것을 알게 될 것입니다 : 어떤 방법을 입력하든 100 자 (한자 또는 기타 작은 솔루션 기호) 만 입력 할 수 있습니다.
암호:
<TextArea OnPropertyChange = "if (value.length> 100) value = value.substr (0,100)"cols = "60"name = "txta"rows = "8"> </textarea>
물론보다 안전하기 위해서는 데이터 양식 데이터를 처리하는 배경 스크립트 프로그램도 제출 된 데이터도 다시 확인해야합니다. 단어 수가 사전 설정 번호를 초과하면 단어 수를 진정으로 제한하는 목적을 달성하기 위해 그에 따라 처리됩니다. (위에)
입력 단어 수를 제한하기 위해 TextArea를 구현하는 또 다른 방법 (중국어 포함, 10 개만 입력 할 수 있으며 모든 ASCII 코드를 입력 할 수 있음)
<cript> 함수 check () {var regc = /[^ -~]+ /g; var rege = // d+/g; var str = t1. 값; if (regc.test (str)) {t1.value = t1.value.substr (0,10); } if (rege.test (str)) {t1.value = t1.value.substr (0,20); }} </script> <textRea maxlength = "10"id = "t1"onkeyup = "check ();"> </textRea>다른 방법이 있습니다 :
함수 textCounter (field, maxlimit) {if (field.value.length> maxlimit) {field.value = field.value.substring (0, maxlimit); } else {document.upbook.remlen.value = maxlimit- field.value.length; }}<textArea name = words cols = 19 줄 = 5 클래스 = 5 class = input1 onpropertyChange = "textCounter (upbook.words, 50)"> textarea> 남은 단어 수 : <입력 이름 = Remlen type = 텍스트 id = "remlen"style = "배경 콜러 : #d4d0c8; 테두리 : 50 크기"3 Maxlength = 3 Maxlengly>.
함수 LimitTextArea (필드) {maxlimit = 200; if (field.value.length> maxlimit) field.value = field.value.substring (0, maxlimit);}<textArea cols = 50 행 = 10 이름 = "comment"id = "commentArea"onkeydown = "limitTextArea (this)"onkeyup = "lemekeptarea (this)"onkeypress = "limittextArea (this)"> </textArea>
Title = "Textarea 너비는 300 자 미만이어야합니다." TextRea에서 최대 바이트 수를 입력하라는 메시지가 표시됩니다.
예를 들어:
<textArea cols = 50 행 = 10 이름 = "comment"id = "commentArea"onkeydown = "limitTextArea (this)"onkeyup = "lemekeptarea (this)"onkeypress = "limittextArea (this)"> </textArea>