Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   onsubmit (Почему не срабатывает проверка?) (https://javascript.ru/forum/project/52459-onsubmit-pochemu-ne-srabatyvaet-proverka.html)

Skriptor 20.12.2014 13:44

onsubmit (Почему не срабатывает проверка?)
 
Почему не срабатывает проверка на длину пароля, текста в textarea и т.д. по атрибуту "onSubmit" в теге <form>?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=window-1251">
<script type='text/JavaScript'>
function verify(form) {
  var firstname = form.firstname.value;
  var pass = form.pass.value;
  var message = form.message.value;
  var rules = form.rules.value;
  var file = form.fileupload.value;
  var bad = "";
  if (firstname.length < 3)
     bad += "Имя слишком короткое" + "\n";
  if (firstname.length > 32)
    bad += "Имя слишком длинное" + "\n";
  if (pass.length < 3)
    bad += "Пароль слишком короткий" + "\n";
  if (pass.length > 32)
    bad += "Пароль слишком длинный" + "\n";
  if (message.length < 3)
    bad += "Сообщение слишком короткое" + "\n";
  if (rules != "on")
    bad += "Вы не согласились с правилами" + "\n";
  if (file.length == 0)
    bad += "Вы не выбрали файл для загрузки" + "\n";
  if (bad != "") {
    bad = "Неверно заполнена форма:" + "\n" + bad;
    alert(bad);
    return false;
  }
  return true;
}
</script>
</head>
<body>
<form  onSubmit='verify(form)' name = 'form1' action = 'handler.php' method = 'post'>
  Ваше имя:
  <input type = 'text' name = 'firstname' />
  <br />
  Ваш пароль:
  <input type = 'password' name = 'pass' />
  <br />
  Ваш пол:
  <input type = 'radio' name = 'sex' value = 'male' />
  <input type = 'radio' name = 'sex' value = 'female' />
  <br />
  Выберите число:
  <select name = 'number'>
    <option value = '1'>1</option>
    <option value = '2'>2</option>
    <option value = '3'>3</option>
  </select>
  <br />
  Ваше сообщение:
  <textarea name = 'message'></textarea>
  <br />
  Согласитесь с нашими правилами:
  <input type = 'checkbox' name = 'rules' />
  <br />
  <input type = 'hidden' value = 'hidefield' name='hidefield' />
  Загрузите файл:
  <input type = 'file' name = 'fileupload' />
  <br />
  <input type = 'submit' value = 'Отправить' name = 'sub'>
  <br />  <br />
  <input type = 'button' value = 'Просто кнопка' name = 'but' onClick='check()'>
</form>
</body>
</html>

MallSerg 20.12.2014 14:28

Надеюсь редактирование кода закончилось =)

По тому что нет глобальной переменной form.
следовательно и свойств form.firstname.value; тоже нет
Это можно заменить на document.form1.firstname.value

Skriptor 20.12.2014 15:04

Цитата:

Сообщение от MallSerg (Сообщение 347369)
Надеюсь редактирование кода закончилось =)

По тому что нет глобальной переменной form.
следовательно и свойств form.firstname.value; тоже нет
Это можно заменить на document.form1.firstname.value

Добавил в функцию:
var form = document.form1;

Все равно не проверяет на onSubmit...
p.s. разобрался, оказывается там нужно было изменить: function verify(form1)
Но почему просто form не сработало?...

Rise 20.12.2014 17:42

Skriptor, onSubmit='return verify(this)'

Skriptor 21.12.2014 00:58

СПАСИБО!


Часовой пояс GMT +3, время: 08:11.