За последние 24 часа нас посетили 17559 программистов и 1724 робота. Сейчас ищут 1632 программиста ...

Js Часть Интерфейса Web-формы

Тема в разделе "JavaScript и AJAX", создана пользователем Vigo, 22 окт 2006.

  1. Vigo

    Vigo Активный пользователь

    С нами с:
    2 окт 2006
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Moscow, Russia
    Короче, есть интерфейс для "общения" с БД с кучей причиндалов, но в определённом месте у меня сложность, в том плане, что JS я совершенно не знаю и не понимаю, а тут видимо как раз его роль требуется, при чём весьма не сложная наверное. Задача такова:

    есть форма для отправки данных сценирию, в ней есть input поле класса textarea. Так вот от JS требуется вычислить количество введёных символов (желательно, чтобы это значение отображалось где-то на странице в реальном времени) и сравнить его с максимально допустимым, в случае, если это количество больше допустимого, кнопка submit должна стать неактивной.

    Т.е. кроме поля ввода и кнопки в форме дожна быть ячейка где указывается количество введёных символов из допустимых, в случае если первое превышает второе, кнопку нажать нельзя.

    Примечание: максимальное значение может быть в районе 65.535 символов, и сценарий не должен приходить в ужас от подобных чисел.

    Вот такая задача, понимаю, что совсем не сложная, но как это сделать? Не заю я JS, а это именно на клиентской стороне должно работать, как часть интерфейса. Помогите плз.
     
  2. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    Код (Text):
    1. <html>
    2. <head>
    3.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    4.     <title>ПРЕВЕД!</title>
    5.     <script type="text/javascript"><!--
    6.     function chk(fld,cnt,btn) {
    7.         cnt = document.getElementById(cnt);
    8.         btn = document.getElementById(btn);
    9.         cnt.value = fld.value.length;
    10.         btn.disabled = (parseInt(cnt.value) < parseInt(cnt.maxLength)) ? false : true;
    11.     }
    12.     //--></script>
    13. </head>
    14.  
    15. <body>
    16.     <form>
    17.         <textarea style="width:300px" onKeyUp="chk(this,'counter','submitter')"></textarea>
    18.         <br>
    19.         <input id="counter" readonly maxlength="15" value="" style="width:100px">
    20.         <input id="submitter" type="submit" style="width:200px">
    21.     </form>
    22. </body>
    23. </html>
    значение-ограничитель задается в параметре "maxlength" поля счетчика
     
  3. Vigo

    Vigo Активный пользователь

    С нами с:
    2 окт 2006
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Moscow, Russia
    Спасибо! Оказавается действительно не сложно.
     
  4. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    вопрос - а зачем такое надо??? это ведь не защита от некорректного ввода! я ведь всегда могу выкинуть яваскрипт со страницы и послать скрипту любые данные по get или post и если в скрипте нет проверки данных на валидность , данные уйдут в БД ...
     
  5. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    Естественно это не заменяет проверок на сервере.
    Вероятно причины не менее двух - чуть-чуть "подсказать" юзеру, что он превысил лимит, а во вторых желание пустить немного "пыли в глаза" сделав как на взрослых сайтах, например при отправке SMS на сайте билайна.
     
  6. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    avm
    ты мои мысли наверное читаешь =)))
    я тоже хотел сказать насчёт подсказки юзверю ...
     
  7. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    Есть также атрибут maxlength для тегов input.
    Его защиту будет сложно обойти.
    Тем не менее, проверку на сервере делать необходимо.
     
  8. Anonymous

    Anonymous Guest

    Его будет сложно обойти из браузера.
     
  9. Vigo

    Vigo Активный пользователь

    С нами с:
    2 окт 2006
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Moscow, Russia
    Хм... Помилуйте, да это не защита накакая, просто сделано для удобства ввода: пользователь сразу видит, исчерпал он лимит или нет. Ни о какой защите речи не идёт, это уже php сценарий проверять будет корректность данных.
     
  10. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    фух, успокоил )