За последние 24 часа нас посетили 17526 программистов и 1723 робота. Сейчас ищут 1612 программистов ...

JavaScript value lenght

Тема в разделе "JavaScript и AJAX", создана пользователем xak2, 16 янв 2007.

  1. xak2

    xak2 Guest

    Вот форма:
    Код (Text):
    1. <form name="id_1">
    2. <input name="id_2">
    3. </form>
    Как сделать чтобы при нажатии кнопки, скрипт проверил длну id_2, и если длина больше 4 то форма отправляется как надо, а если текст в id_2 короче 4 символов, форма стояла на месте и выскакивало сообщение alert?
     
  2. vasa_c

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

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Код (Text):
    1. <form onsubmit="if ( document.getElementById( <id инпута> ).value.length > 4 ) return true; alert( 'нафик!' ); return false">
     
  3. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    проще говоря,
    Код (Text):
    1. <form onsubmit="if (this.id_2.value.length <= 4) { alert( 'нафик!' ); return false }">
     
  4. Петр

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

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    Код (Text):
    1. <script language="javascript" type="text/javascript">
    2. function check() {
    3.     if (document.getElementById("id_2").value.length < 4) {
    4.         alert("Длина введенной строки меньше четырех символов.");
    5.     } else {
    6.         return true;
    7.     }
    8.    
    9.     return false;
    10. }
    11. </script>
    12.  
    13. <form name="id_1">
    14.     <input name="id_2">
    15.     <input type="submit" onClick="return check();">
    16. </form>
     
  5. eduha

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

    С нами с:
    8 ноя 2006
    Сообщения:
    278
    Симпатии:
    0
    Адрес:
    Караганда
    А если я форму буду сабмитить энтером? :)
    То есть все-таки на onSubmit надо вешать.
     
  6. Петр

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

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    А если у пользователя отключен JS?
    Проверка на стороне клиента - это защита от блондинок.
    Они очень боятся вычислительной техники, поэтому аккуратно,
    по полчаса проверяют, все ли они так ввели, потом нажимают на сабмит...
    раз десять-пятнадцать, чтобы быть уверенными, что данные отправлены.
     
  7. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    эта интерактивность
     
  8. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Это идиотизм. Alert'ы вообще надо запретить как класс.
    Существенно лучше выводить сообщение об ошибке на странице рядом с полем с некорректными данными и ошибку эту выделять ярким так, чтобы было понятно, что это именно ошибка.
    Это позволяет:
    1. Избежать лишнего движения и клика по кнопке ок.
    2. Анализа текста сообщения и попыток найти на странице место с проблемой.
    3. Одинаково работает и на стороне клиента (без перезагрузки) и на стороне сервера (с перезагрузкой). Функциональность дублируется, но в таких случаях этого не избежать.
     
  9. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    на самом деле проверка на стороне клиента - это помощь норм.челу, который случайно описАлся в форме.. например, при вводе номера телефона написал 123-45*67..
     
  10. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    alert дешевый способ
     
  11. vasa_c

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

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    неа.

    Петр
    во-первых, лучше вешать на onsubmit
    а во-вторых, где там id==id_2 ?
     
  12. Петр

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

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    Согласен, моя ошибка.