За последние 24 часа нас посетили 59785 программистов и 1772 робота. Сейчас ищут 1599 программистов ...

Проверка вводимого текста вплоть до запятой

Тема в разделе "JavaScript и AJAX", создана пользователем AkudJEE, 25 окт 2012.

  1. AkudJEE

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

    С нами с:
    29 июл 2012
    Сообщения:
    29
    Симпатии:
    0
    Здравствуйте. У меня есть поле ввода textarea, вот для него код:
    Код (Text):
    1. $script .= "
    2.         if (form.metakey.value == ''|| form.metakey.value == null){
    3.         alert(JText._('JGA_COMMON_ALERT_IMAGE_MUST_HAVE_KEYS'));
    4.        form.metakey.style.backgroundColor = ffwrong;
    5.        form.metakey.focus();
    6.         return false;
    7.            }
    Этот код выводит сообщение-предупреждение, если поле пустое. Мне надо сделать, чтобы он проверял не только пустое слово, а количество вводимых символов, то есть в это поле пользователи будут вводить ключевые слова через запятую. Код должен посчитать запятые, если их меньше трех, то вывести сообщение, если больше, то ничего не выводить, а выполнить. Как это можно сделать?
     
  2. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4.     <meta charset="utf-8">
    5.     <title>Example</title>
    6. </head>
    7. <body>
    8.     <form id="form" method="post">
    9.         <textarea name="textarea"></textarea>
    10.         [url="javascript:form('form')"]Отправить[/url]
    11.     </form>
    12.     <script type="text/javascript">
    13.         function form(id) {
    14.             var textarea=document.forms[id].textarea,
    15.                 array='',
    16.                 addArray=[];
    17.             if(!textarea.value) {
    18.                 alert('Поле не может быть пустое!');
    19.                 textarea.focus();
    20.             } else {
    21.                 array=textarea.value.split(',');
    22.                 if(3<=array.length) {
    23.                     for(var i in array) {
    24.                         if(array[i]) {
    25.                             addArray.push(array[i]);
    26.                         }
    27.                     }
    28.                     if(3<=addArray.length) {
    29.                         alert('Все ок!');
    30.                     } else {
    31.                         alert('Перечислите 3 или более элементов через запятую');
    32.                     }
    33.                 } else {
    34.                     alert('Перечислите 3 или более элементов через запятую');
    35.                 }
    36.             }
    37.         }
    38.     </script>
    39. </body>
    40. </html>
     
  3. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Код (PHP):
    1. function form(id) {
    2.     var textarea = document.forms[id].textarea;
    3.     if (!textarea.value) {
    4.         alert('Поле не может быть пустое!');
    5.         textarea.focus();
    6.     } else {
    7.         var val = textarea.value.replace(/\s/g,'');
    8.         var re = /^([^,]+,){2}([^,]+)/;
    9.         if (re.test(val)) {
    10.             alert('Все ок!');
    11.         } else {
    12.             alert('Перечислите 3 или более элементов через запятую');
    13.         }
    14.     }
    15. } 
     
  4. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Верно)
    Умничка)
     
  5. AkudJEE

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

    С нами с:
    29 июл 2012
    Сообщения:
    29
    Симпатии:
    0
    Дело в том, что у меня уже есть кнопка для отправки данных, но эта кнопка отправляет не только данные metakey, но и другие imgtitle, imgtext и др.
    Вот ее код
    Код (Text):
    1. <input type="submit" value="<?php echo JText::_('JGA_UPLOAD_UPLOAD'); ?> " >
    А вот поле заполнения ключей:
    Обязательно должно быть
    Код (Text):
    1. name="metakey"
    Иначе ключи не пропишутся.
    Как-нибудь можно ваш код прикрутить к этим полям? Самому не получается это сделать
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    А что не судьба название поменять?

    <textarea name="textarea"></textarea>

    И в коде тоже var textarea = document.forms[id].textarea;