2010-06-28 5 views
3

jQuery를 사용하여 지정된 클래스가있는 요소의 문자 수를 제한 할 수 있는지 궁금합니다.제한 문자 jquery

예를 들어, 다음 요소는 클래스가 짧아지면 40 자 정도 밖에 표시되지 않습니다.

<p class="shortened">This would be the text limited to 40 Characters</p> 

미리 도움 주셔서 감사합니다.

+0

아래 링크에 대한 자세한 내용을보실 수 있습니다 http://www.technicalkeeda.com/jquery/how-to-limit-the-input-characters-using-jquery – Vicky

답변

4

아마도 플러그인일까요?

http://plugins.jquery.com/project/TrimText

필요에 따라이 쉽거나 어려울 수 있습니다. 간단한 텍스트를 자르는 것은 쉽고, html을 자르는 것은 약간 어렵습니다. html을 자르고 텍스트를 다시 넣기위한 확장 버튼을 원한다면 아직 어렵습니다.

+0

Thanks Mark! 필자는 플러그인을 사용 하겠지만 다른 아이디어가 있으면 듣고 싶습니다. –

+0

@pixelflips, 플러그인을 사용하는 것이 좋습니다. 왜냐하면 나중에 5 개의 라이너 스크립트에 텍스트가 너무 복잡하기 때문입니다. – Mark

6

<input type="text" /> 요소의 경우 maxlength 속성을 사용할 수 있습니다.

다른 요소 (예 : <textarea>)의 경우 요소의 onkeyup 이벤트를 확인할 수 있습니다.

$('.shortened') 
    .keyup(function(e){ 
     var $this = $(this); 
     $this.text($this.text().substring(0, max)); //Set max to 40, or whatever you want 
    }); 

기타 비 형식 요소의 경우 동일한 작업을 수행 할 수 있지만 이벤트 처리기에서는 수행하지 않아도됩니다.

$('.shortened') 
    .each(function(){ 
     var remainTxt = $(this).text().substring(max, $(this).text().length); 
     $(this).text($(this).text().substring(0,max)); 
    }); 

편집 : 마크의 대답과 일치하려면, 당신은 나머지는 .text() 문자열을 저장하고 사용자가 "확장"버튼을 클릭 할 때 추가 할 수 있습니다.

+0

네, 부분 문자열은 이것을 쉽게 처리 할 수 ​​있어야하지만 두 번째 코드 단편에서 .'val()'의 모든 인스턴스는'.text()'를 의미합니다. – Mark