2009-09-06 7 views
1

입력 된 최대 문자가 보이는 텍스트 상자 크기를 초과 할 수없는 여러 줄 텍스트 상자 (asp.net C# 사용)가 가능합니까?멀티 라인 텍스트 상자에 최대 문자 (가시성 허용) 설정

스크롤 막대를 세로로 (오버 플로우 : 숨김) 해제했습니다.

여러 줄 텍스트 상자에 100px 높이 (또는 5 줄)라고 표시되면 사용자가 텍스트 상자의 높이 이상을 입력 할 수 없기를 바란다.

JS/JQuery 해킹이 있어야하나요?

답변

1

아니요, 불가능합니다.

ASP.NET 텍스트 상자가 마침내 텍스트 제한을 지원하지 않는 HTML 텍스트 영역이되기 때문에.

JavaScript를 사용하여이 트릭을 수행 할 수 있습니다.하지만 눈에 보이는 영역은 무엇보다 쉽지 않을 수 있습니다. 사용중인 현재 글꼴의 메트릭을 어떻게 든 계산 한 다음 메모리에서 렌더링하여 상자의 제한이 초과되었는지 확인해야합니다. Windows 용으로 프로그래밍 할 때 그런 트릭을 할 수는 있지만 웹 페이지에서는 가능하지 않을 수 있습니다.

+0

+1 해결책이없는 것으로 보입니다. – waqasahmed

0

마침내 텍스트 영역으로 바뀌어도이 작업을 수행 할 수 있지만 해킹입니다.

텍스트 영역 키 누르기에서 JQuery를 사용하여 값의 길이를 확인하고 임계 값을 초과하는 경우 마지막 문자를 제거하십시오.

나는 해커 고 말했다.

행운을 빌어 요,

+0

은 일부 문자가 다른 문자와 다르기 때문에 (예 : m이 1보다 큽니다) 사실상 불가능합니다. 따라서 문자의 수를 기반으로 표시 가능한 입력 가능 텍스트 상자를 최대 길이로 정확하게 지정할 수 없습니다. 그래도 고마워. – waqasahmed

0

당신은 텍스트의 최대를 제한 할 수 있습니다. 다음과 같이 char.

클라이언트 측

function ValidateLength() 
{ 
    if(document.forms[0].txtFlightRemarks.value.length > MAX_LENGTH)  
    {   
     document.forms[0].txtFlightRemarks.value = document.forms[0].txtFlightRemarks.value.substring(0,MAX_LENGTH); 
     document.forms[0].txtFlightRemarks.focus(); 
     return false; 
    }  
} 

서버 측 (를 Page_Load) : onchange를 연결하고 필요한 텍스트 영역에 이벤트가 onkeyup.

txtFlightRemarks.Attributes.Add("onchange", "ValidateLength();"); 
txtFlightRemarks.Attributes.Add("onKeyUp", "ValidateLength();"); 
+0

좋은 시도지만, 이것은 내가 찾고있는 것이 아닙니다. – waqasahmed

관련 문제