Функция JavaScript для ограничения символов в текстовой области, вызывающая проблемы «обновления» в Firefox - PullRequest
0 голосов
/ 04 октября 2011

Я использую следующую функцию JavaScript для ограничения символов в текстовой области:

function limit(element, max_chars)
{
    if(element.value.length > max_chars)
        element.value = element.value.substr(0, max_chars);
}

<textarea onkeyup="javascript:limit(this, 4000)"></textarea>

При вводе длинного текста в текстовой области в Firefox и при достижении предела фокус возвращается к началутекстовой области и самой текстовой области действует странно.В других браузерах все нормально.Есть ли способ решить эту проблему или другой способ ограничить символы / удалить дополнительные символы с помощью JavaScript?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 04 октября 2011

Можете ли вы просто использовать свойство maxlength для стиха textarea, основанного на JS?Или я что-то упустил?

<textarea maxlength="10"></textarea>

РЕДАКТИРОВАТЬ:

Работает во всех браузерах, которые поддерживают HTML5.Если вам нужна поддержка старых браузеров, вы можете воспользоваться этой ссылкой:

Как наложить maxlength на textArea в HTML с использованием JavaScript

HTML5 Информация:

http://www.w3schools.com/html5/tag_textarea.asp

0 голосов
/ 04 октября 2011

HTML:

<!-- Use maxlength for browsers that support it -->
<textarea maxlength="4000" onkeypress="restrictLength(this, event)"></textarea>

JavaScript:

function restrictLength(reference, event) {
    // Retrieve maxChars from "maxlength" attribute;
    // otherwise, default to 4000
    var maxChars = reference.getAttribute("maxlength") ? parseInt(reference.getAttribute("maxlength")) : 4000;

    // Stop event from propagating up the event chain
    event.stopPropagation();

    // Test if length > maxChars
    if (reference.value.length > maxChars) {
        event.preventDefault ? event.preventDefault() : event.returnValue = false;
    }
}
0 голосов
/ 04 октября 2011
<script type="text/javascript">

/***********************************************
* Textarea Maxlength script- © Dynamic Drive (www.dynamicdrive.com)
* This notice must stay intact for legal use.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

function imposeMaxLength(obj){
var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
if (obj.getAttribute && obj.value.length>mlength)
obj.value=obj.value.substring(0,mlength)
}

</script>

<textarea maxlength="40" onkeyup="return ismaxlength(this)"></textarea>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...