2009-09-06 3 views
1

Возможно ли иметь многострочный текстовый файл (im using asp.net C#), где максимальные введенные символы не могут превышать видимый размер текстового поля?Установить max char (как разрешено видимость) в многострочном текстовом поле

Я взял полосы прокрутки вертикально (переполнение: скрыто).

Теперь я хочу, чтобы он сказал, что если многострочное текстовое поле показывает высоту 100 пикселей (или говорят 5 строк), пользователь не может набрать больше высоты текстового поля?

Для этого должен быть взломан JS/JQuery?

ответ

1

Нет, это невозможно.

Поскольку текстовое поле ASP.NET, наконец, превращается в текстовое поле HTML, которое не поддерживает текстовый предел.

Вы можете сделать этот трюк с JavaScript, конечно, но что касается видимой области, это может быть не так просто. Вам нужно как-то вычислить метрики текущего используемого шрифта, а затем попытаться отобразить в памяти, чтобы увидеть, превышены ли пределы поля. Такими трюками можно было бы при программировании для Windows, но с веб-страницами, вероятно, это невозможно.

+0

+1 похоже, что решения нет. – waqasahmed

0

Хотя он, наконец, превращается в текстовое поле, вы МОЖЕТЕ сделать это, но это взломано.

С помощью JQuery на клавиатуре textarea проверьте длину значения, если он находится над вашим порогом, удалите последний символ.

Как я сказал, взломанный.

Успехов,

Dan

+0

практически невозможно таким образом, потому что некоторые символы отличаются друг от друга (например, m больше l), поэтому не могут точно нарисовать видимое типизированное текстовое поле как максимальную длину, основанную на количестве символов. Спасибо хоть. – waqasahmed

0

Вы можете ограничить текст макс. char следующим образом.

Client Side

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; 
    }  
} 

Server Side (Page_Load): приложить OnChange и OnKeyUp событий требуются текстовое поле.

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

хорошая попытка, но это не то, что я ищу. – waqasahmed