well-documented 다른 브라우저는 maxlength와 관련하여 텍스트 영역에서 줄 바꿈을 다르게 처리합니다. 예를 들어 개행을 사용하는 경우 아래의 스 니펫은 Chrome과 Firefox에서 다르게 작동합니다.텍스트 영역에 대한 기능 감지 newlength가 포함 된 maxlength
내 문제는 사용자가 줄 바꿈을 입력 할 수있게해야하며 왼쪽에 얼마나 많은 문자가 있는지 표시해야한다는 것입니다. 브라우저 유형을 감지 할 수는 있지만 그 것이 약하고 알려진 반 패턴입니다. 이 작업을 제대로 수행하기 위해 기능 감지 기능을 사용할 수 있습니까? 아니면 여전히 최대 길이를 피해야합니까? 제 질문은 jQuery에만 국한된 것이 아니라는 점에 유의하십시오. 예제에서 단순화를 위해 jQuery를 사용했습니다. maxlength가없는 해결 방법에 대한 예제가 있지만 (아래 참조) jquery 해킹을 사용하지 않으려는 ember와 같은 프레임 워크에서는 잘 해석되지 않습니다.
최대 길이 문제 (최대 길이 해결없이 적어도 하나의 줄 바꿈
$('.t').on('input',function(){
$('.x').html($('.t').val().length);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea class="t" rows=3 maxlength=10></textarea>
<br>
chars typed: <span class="x"></span>
(총 파이어 폭스, 크롬으로 시도하고 입력)
$('.t').on('input', function(){
let maxLength = 10;
let val = $('.t').val();
$('.t').val((val && val.length) ? val.substring(0,maxLength) : val);
$('.x').html($('.t').val().length);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea class="t" rows=3></textarea>
Chars typed: <span class='x'></span>
, 당신은 백 스페이스 더 이상 – AlexMA
또한 만 문자 붙여 넣기를 방지하지 않습니다 사용할 수 없습니다. – AlexMA
'backspace', 'delete'등과 같은 네비게이션 키를 사용하지 않고 가능한 한 간단하게 만들었습니다. 원한다면 샘플에 추가 할 수 있습니다. 또한 붙여 넣기는 문제가되지 않으며 maxLength를 검사하는 동일한 처리기로 다른 이벤트를 처리하십시오. 샘플에 추가해야합니까? – xxxmatko