Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / проверка формы перед отправкой / 18 сообщений из 18, страница 1 из 1
19.09.2012, 09:17:52
    #37963353
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
всем привет

в целях изучения DOM, сделал скрипт проверки/блокировки/разрешения отправки формы
если не заполнены необходимые поля - выводится предупреждение у соответствующего поля, а кнопке присваивается тип button
если все ок, то кнопка становится submit и происходит отправка
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
<form method="post" action="" name="form1" id="form1">
  <input type="text" name="text" id="text" value="" size="55">
  <br>
  <input type="text" name="emptytext" id="emptytext" value="" size="55">
  <br>
  <textarea name="tarea" id="tarea" cols="77" rows="5"></textarea>
  <br>
  <input onclick="checkAndSend(this)" type="submit" name="button" id="button" value="отправить">    
</form>
  
<script> 
  
function checkAndSend(theButton){
  var but = theButton;
  var form = but.parentNode;
  var cou = 0;
  for ( var i = 0; i < form.elements.length;i++ ) {
    if ( form.elements[i].type != 'submit' && form.elements[i].type != 'button') {
      if ( form.elements[i].value.length != 0 ) { 
        // подсчитываем пустые поля
        cou++;
      }
    }
  }
  if( cou != 3 ){
    for ( var i = 0; i < form.elements.length;i++ ) {
      if ( form.elements[i].type != 'submit' && form.elements[i].type != 'button') {
        if ( form.elements[i].value.length == 0 ) {
          // создали новый элемент
          var newSpanElem = document.createElement('span');
          // задали значение нового элемента
          newSpanElem.innerHTML = "поле не должно быть пустым";
          // задали стилевое оформление нового элемента
          newSpanElem.style.cssText = "padding-left:10px; color:red;";
          // добавили новый элемент после нужного тега если там нет тега с предупреждением
          if (form.elements[i].nextElementSibling.innerHTML.length == 0) {
            form.insertBefore(newSpanElem, form.elements[i+1].previousElementSibling);
          } 
        } else {
          // если предупреждающие теги span есть удаляем их
          if ( form.elements[i].nextElementSibling.nodeName == 'SPAN' ) {
            form.removeChild(form.elements[i].nextElementSibling);
          }          
        }
      }
    }
    // если есть незаполненные поля, то присваиваем кнопке тип button
    but.type = 'button';
  }else{
    // иначе делаем кнопку типом submit и отправляем форму
    but.type = 'submit';    
  }
}

</script>


p.s. разумеется в реальной жизни эффективнее и эффектнее использование готовых плагинов типа jQuery Validate и т.д.
...
Рейтинг: 0 / 0
19.09.2012, 10:32:08
    #37963513
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
/me думает: это, типо, "Я пиарюсь" или почеркайте красным?
...
Рейтинг: 0 / 0
19.09.2012, 10:38:19
    #37963530
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
Ладно хоть не татьянычу отправил.
...
Рейтинг: 0 / 0
19.09.2012, 11:19:15
    #37963640
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
Ex_Softпочеркайте красным?вдруг не жалко что-нибудь подсказать по коду :)
...
Рейтинг: 0 / 0
19.09.2012, 11:24:14
    #37963655
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
buyboyEx_Softпочеркайте красным?вдруг не жалко что-нибудь подсказать по коду :)
По коду - забей.
...
Рейтинг: 0 / 0
19.09.2012, 11:28:25
    #37963664
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
buyboyесли не заполнены необходимые поля ... кнопке присваивается тип button если все ок, то кнопка становится submit
Начните тогда с этого
...
Рейтинг: 0 / 0
19.09.2012, 12:13:43
    #37963763
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
ShSergeПо коду - забей. с кодом все так плохо?
...
Рейтинг: 0 / 0
19.09.2012, 12:38:09
    #37963828
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
Код: sql
1.
2.
3.
4.
5.
6.
         // создали новый элемент
          var newSpanElem = document.createElement('span');
          // задали значение нового элемента
          newSpanElem.innerHTML = "поле не должно быть пустым";
          // задали стилевое оформление нового элемента
          newSpanElem.style.cssText = "padding-left:10px; color:red;";


просто убивают такие комменты.
...
Рейтинг: 0 / 0
19.09.2012, 13:18:55
    #37963918
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
Hettпросто убивают такие комменты.
неправильно написал или они абсолютно нубовские?
...
Рейтинг: 0 / 0
19.09.2012, 13:22:18
    #37963930
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
Какой смысл писать их, они только читабельность портят.
Когда учился в универе, таким образом комментировали строчки студенты которые совсем ни бум бум в программировании. А так преподаватель спросит - и ответить можно :) В общем да, нубские.
...
Рейтинг: 0 / 0
19.09.2012, 14:14:02
    #37964087
спан
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
хм...
...
Рейтинг: 0 / 0
19.09.2012, 16:44:56
    #37964416
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
HettВ общем да, нубские.ну так я и есть - нуб :(
...
Рейтинг: 0 / 0
19.09.2012, 16:47:32
    #37964424
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
спанхм...
суперр...
завидую стилю кодирования - мой на фоне этого капец какой нубский
...
Рейтинг: 0 / 0
19.09.2012, 17:27:53
    #37964502
спан
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
...
Рейтинг: 0 / 0
19.09.2012, 19:04:24
    #37964618
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
спан,
крутые ссылки - спасибо = учту на будущее
мне пока вот это надо осилить = http://learn.javascript.ru/
...
Рейтинг: 0 / 0
22.09.2012, 10:12:29
    #37968138
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
спан,
действительно достойная книга = Стоян Стефанов JavaScript. Шаблоны
...
Рейтинг: 0 / 0
22.09.2012, 17:00:01
    #37968325
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
buyboyShSergeПо коду - забей. с кодом все так плохо?
Нет, с подходом совсем хреново.
Разрешать или отменять сабмит надо в onsubmit формы, а кнопку трогать не надо.
...
Рейтинг: 0 / 0
22.09.2012, 17:04:59
    #37968328
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка формы перед отправкой
И это лишь классический подход, который следует понимать только для отметки "да, я понял как фурычат формы" или для более-менее быстрого создания технического GUI, не заботящегося о юзабилити. А иначе мы уже попривыкли видеть зеленые галки и тултипы при onchange полей ввода с фоновыми ajax-запросами к серверу типа "анука глянь, это имя не занято?", а не после ввода всех полей и нажатия кнопки.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / проверка формы перед отправкой / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]