Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: событие onclick кнопки submit
 
 автор: Dimka31   (27.11.2007 в 12:18)   письмо автору
 
 

Как сделать так что бы выполнялась, проверка заполнения полей при нажатии кнопки submit и в случае если поле пустое то не будет осуществлен переход к обработчику?

   
 
 автор: coloboc66   (27.11.2007 в 12:30)   письмо автору
 
   для: Dimka31   (27.11.2007 в 12:18)
 

Вместо submit используйте button, onclick и submit()

   
 
 автор: SHAman   (27.11.2007 в 13:32)   письмо автору
 
   для: Dimka31   (27.11.2007 в 12:18)
 


if(empty)
{return false}
else
{return true}
Обработчик повесьте на событие onsubmit для формы.
Например, если добавить обработчик:

document.getElementById('#myform').onsubmit = function(){
return false;
}
то форму нельзя будет отправить.

   
 
 автор: sim5   (27.11.2007 в 13:56)   письмо автору
 
   для: Dimka31   (27.11.2007 в 12:18)
 


<script>
function checkValue(e) {
 var labels = document.getElementsByTagName('label');
 var ret = true;
 for (i=0; i<e.length; i++) {
   if (e[i].value=='') {
     alert('Не заполнено поле: '+labels[i].innerHTML);
     ret = false;
     break;
   }
 }
 return ret;
}
</script>

<form action="" onsubmit="return checkValue(this.elements)">
<label for="res_1">Input 1</label>
<input type="text" id="res_1" name="res_1"><br>
<label for="res_2">Input 2</label>
<input type="text" id="res_2" name="res_2"><br>
<label for="res_3">Input 3</label>
<input type="text" id="res_3" name="res_3"><br>
<input type="submit" value="Send">
</form>

   
 
 автор: Dimka31   (27.11.2007 в 14:31)   письмо автору
 
   для: sim5   (27.11.2007 в 13:56)
 

немного переписал скрипт, только ничего не получаеться


  function checkValue(e)
    { 
      var ret = true; 
      if (document.all['FIO'].value=='')
      { 
        alert('Не заполнено поле: Ф.И.О'); 
        ret = false; 
          break; 
      }
      if (document.all['DAT'].value=='')
      { 
        alert('Не заполнено поле: Дата рождения'); 
        ret = false; 
          break; 
      }
      if (document.all['MAI'].value=='')
      { 
        alert('Не заполнено поле: E-mail'); 
        ret = false; 
          break; 
      }
      if (document.all['PHO'].value=='')
      { 
        alert('Не заполнено поле: Телефон'); 
        ret = false; 
          break; 
      }
       
      return ret; 
    } 

<form action="add.php" method="post" onSubmit="return checkValue(this.elements)"> 
                  <table width="100%">
                    <tr>
                      <td width="30%">
                        <p align="left"><b>Ф.И.О:</b></p>
                      </td>
                      <td>
                        <p align="left"><input name="FIO" type="text" size="25" maxlength="50">
                        <input name="log" type="button" value="проверить" onClick="login();">
                      </td>
                    </tr> 
                    <tr>
                      <td>
                        <p align="left"> <b>Отдел:</b>
                      </td>
                      <td>
                        <p align="left"><select name="OTD">
                          <option value="Personal">Отдел Персонала
                          <option value="Sale">Отдел Продаж
                          <option value="Finance">Отдел Финансов
                        </select>
                      </td>
                    </tr>  
                      <tr>
                      <td>
                        <p align="left"><b> Дата рождения:</b>
                      </td>
                      <td>
                        <p align="left"><input name="DAT" type="text" size="10" maxlength="20">
                      </td>
                    </tr>
                      <tr>
                      <td>
                        <p align="left"><b>E-mail:</b>
                      </td>
                      <td>
                        <p align="left"><input name="MAI" type="text" size="20" maxlength="30">
                      </td>
                    </tr>
                      <tr>
                      <td>
                        <p align="left"><b>Телефон:</b>
                      </td>
                      <td>
                        <p align="left"><input name="PHO" type="text" size="10" maxlength="20">
                      </td>
                    </tr> 
                  </table>
                  <input type="submit" value="Добавить">
                  </form>

   
 
 автор: sim5   (27.11.2007 в 14:48)   письмо автору
 
   для: Dimka31   (27.11.2007 в 14:31)
 

А зачем так длинно? Чем вас не устраивает более короткое - перебор элементов формы в цикле? Укажите LABEL для элементов ввода, отпадет необходимость писать лишнее. document.all - зачем?
Делайте проще. Элементы формы - это массив, начиная с нулевого индекса и до length-1. Вам ведь нужно только узнать - пустое поле или нет. Единственно, что добавить, так это корректность ввода e-mail, но и это можно проверить в цикле.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования