Как показать интерактивные ограничения персонажа? - PullRequest
3 голосов
/ 05 мая 2009

Как в Stack Overflow отображаются ограничения интерактивных символов? Как и при редактировании комментариев, он показывает количество оставшихся символов, а также предупреждает, если их слишком мало.

Мне бы хотелось, чтобы именно эта функциональность была в моем Ruby on Rails ... Но не знаете, как это сделать?

Ответы [ 5 ]

12 голосов
/ 05 мая 2009

Stackoverflow использует jQuery JavaScript Framework и имеет множество существующих скриптов и плагинов для такого рода вещей.

Один из примеров - это Предел интерактивных символов для TextArea в jQuery продемонстрировано здесь .

Я уверен, что есть и другие.

5 голосов
/ 25 мая 2009

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

function checkLength(edit, maxlen) 
{
if (edit.value.length > maxlen) 
    edit.value = edit.value.substring(0, maxlen);

    document.getElementById('remaining').innerHTML = edit.value.length;
}

Свяжите это с атрибутами onTeyDown и onKeyUp вашей текстовой области:

onKeyDown = "checkLength(this, 100);"
1 голос
/ 25 мая 2009

с помощью события onkeydown на входе. Существуют миллионы примеров, и, честно говоря, я бы удивился, если бы это не повторяющийся вопрос.

Это: Как отобразить ограничения интерактивных символов?

0 голосов
/ 05 мая 2009

Вы также можете использовать простую обработку событий JavaScript, чтобы показать количество символов для элементов ввода. Не требуется обработка на стороне сервера.

Этот JavaScript-код ловит событие нажатия клавиши для текстовой области "TXT" и показывает количество символов в промежутке «count».

Видеть это работает на http://aaron.oirt.rutgers.edu/myapp/root/charCount.html

<html>
<head>

<script>
function go() {
    var txt=document.getElementById("txt");
    txt.onkeydown = countTxt;
}
function countTxt() {
    var txt=document.getElementById("txt");
    var count=document.getElementById("count");
    count.innerHTML = txt.value.length+1; // count the character not shown yet ;)
}
</script>

</head>
<body onload="go()">

<h3>type in the text area and see the count change</h3>

<textarea id="txt" rows="8" cols="30"></textarea>
<br>
count: <span id="count"> 0</span>

</body>

Счет может быть от моего + -1 - исправление, которое (если вы действительно хотите) оставлено на усмотрение читателя.

0 голосов
/ 05 мая 2009

Я думаю, что вы ищете какой-то JavaScript, в основном вы добавляете обработчик к событию onkeypress текстового поля, чтобы получить текущую длину:

mytextbox.value.length

и чтобы ограничить его, вы можете сделать что-то вроде:

if (mytextbox.value.length > maxlimit) 
mytextbox.value = mytextbox.value.substring(0, maxlimit);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...