Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регистрация на сайте (https://javascript.ru/forum/misc/43178-registraciya-na-sajjte.html)

Apelcun77 25.11.2013 16:47

Регистрация на сайте
 
Вот сделал код:
<html>
<head>
<title>Сайт тыры пыры там</title>
<meta http-eqiv="content type" content="text/html; charset=windows-1251">
<script language="javascript">

var alpha = /^[()\-.\/@^_а-яА-ЯёЁ\w]+$/;
function firstnameuser() {
	if (document.feedback.firstname.value.length < 2) {
    document.all.item("firstname_check").innerHTML = "Минимум 2 символа";}
	else {
	document.all.item("firstname_check").innerHTML = alpha.test(document.feedback.firstname.value) ? '+' : 'Некорректные символы';
	}
	if (document.feedback.firstname.value.length > 15) {
    document.all.item("firstname_check").innerHTML = "Превышена длина";}
}

function emailuser() {
	if (document.feedback.email.value.length < 2) {
    document.all.item("email_check").innerHTML = "Минимум 2 символа";}
	else {
	document.all.item("email_check").innerHTML = alpha.test(document.feedback.email.value) ? '+' : 'Некорректные символы';
	}
	if (document.feedback.email.value.length > 25) {
    document.all.item("email_check").innerHTML = "Превышена длина";
	}
}

function female_male() {
if (document.feedback.floor[0].checked) {
document.all.item("female_male").innerHTML = "+";
}
if (document.feedback.floor[1].checked) {
document.all.item("female_male").innerHTML = "+";
}
}

function checkForm() {
if (document.feedback.firstname_check.value != "+") {
document.all.item("error_register").innerHTML = "Имя заполнено неверно";
}
if (document.feedback.email_check.value != "+") {
document.all.item("error_register").innerHTML = "E-mail заполнен неверно";
}
if (document.feedback.female_male.value != "+") {
document.all.item("error_register").innerHTML = "Пол не указан";
}
if (document.all.item("error_register").innerHTML == " ") return true;
if (document.all.item("error_register").innerHTML != " ") return false;
}

</script>
</head>
<img src="images/head.jpg" width=1900 height=200>
<body bgcolor=white text="grey">
<table width=1960>
<tr>
<td valign=top>
<h2>Меню</h2>
<ul>
<li><a href="index.html">Главная</a>
<li><a href="games.html">Игры</a>
<li><a href="films.html">фильмы</a>
<li><a href="feedback.html">Обратная связь</a>
</ul></td>
<td>
<h1>Обратная связь</h1>
<span id="error_register"> </span>
<table>
<tr>
<form action="request.php" method="post" name="feedback" onSubmit="return checkForm()">
<td><label>Имя:</label></td>
<td><input type="text" name="firstname" onBlur="firstnameuser()"></td>
<td width="200"><p id="firstname_check"></td>
<tr>
<td><label>E-mail</label></td>
<td><input type="text" name="email" onBlur="emailuser()"></td>
<td width="200"><p id="email_check"></td>
</tr>
<tr>
<td><label>Пол:</label></td>
<td><input type="radio" name="floor" value="male" onBlur="female_male()">Мужской
<input type="radio" name="floor" value="female" onBlur="female_male()">Женский
</td>
<td width="200"><p id="female_male"></td>
</tr>
<tr>
<td>
<label>Выбирите тему:</label></td>
<td><select name="subject">
<option value="review selected">Отзыв</option>
<option value="suggestion">Предложение</option>
<option value="problems">Жалоба</option>
</td>
</select>
</tr>
</table>
<label>Сообщение:</label>
<textarea name="message" cols="40" rows="10"></textarea>
<br>
<div style="border: 1px double black; padding: 3px; width: 165px;" id="symbols">Не более 450 символов!</div>
<input type="checkbox" name="news">Присылать уведомления на почту
<br>
<input type="submit" value="Подтвердить">
</td>
</form>
<tr>
</table>
</body>
</html>

Я сделал чтобы рядом с полем ввода появлялось предупедение об ошбике или "+" если все правильно,оно появляется после сброса фокуса, можете проверить как работает.
Но теперь я столкнулся с другой проблемой -хочу сделать что бы когда форма заполнена не верно то над формой была причина и она не отправляла запрос, вобщем я сделал это, но у меня не работает, помогите пожалуйста

рони 25.11.2013 17:02

Apelcun77,
у вас очень крутая форма которой пофигу на таблицу в которой она находится и очень крутой селект в форме которому пофигу и на форму и на таблицу но особо впечатляет document.all :cray: :cray: :cray:

Apelcun77 25.11.2013 19:41

рони, я новичок, лучше скажите что нужно исправить пожалуйста

рони 25.11.2013 19:53

Apelcun77,
вместо document.all -> http://learn.javascript.ru/searching-elements-dom
не путать последовательность тегов а соблюдать вложенность - строки 094 и 095 для селекта --
html разметка: таблица в форме либо форма в одной из ячеек таблицы.

Apelcun77 25.11.2013 21:23

function checkForm() {
var reg_error = document.getElementById("error_register");
if (document.feedback.firstname_check.value != "+") {
reg_error.innerHTML  = "Имя заполнено неверно";
}
if (document.feedback.email_check.value != "+") {
reg_error.innerHTML  = "E-mail заполнен неверно";
}
if (document.feedback.female_male.value != "+") {
reg_error.innerHTML  = "Пол не указан";
}
if (reg_error.innerHTML  == "") return true;
if (reg_error.innerHTML  != "") return false;
}

Сделал вот так, все равно что-то не работает,не знаю что

рони 25.11.2013 22:30

Цитата:

Сообщение от Apelcun77
document.feedback.firstname_check.value

нет ни такого элемента document.feedback.firstname_check нет ни такого значения value


function checkForm() {
  var reg_error = document.getElementById("error_register");
  if (document.getElementById("firstname_check").innerHTML != "+") {
  reg_error.innerHTML  = "Имя заполнено неверно";
  };
  if (document.getElementById("email_check").innerHTML != "+") {
  reg_error.innerHTML  = "E-mail заполнен неверно";
  };
  if (document.getElementById("female_male").innerHTML != "+") {
  reg_error.innerHTML  = "Пол не указан";
  };
  if (reg_error.innerHTML  == "") return true;
  if (reg_error.innerHTML  != "") return false;
  }


точно ли тут пусто у вас или пробел ???
<span id="error_register"> </span>

Apelcun77 26.11.2013 14:27

РОни, там пусто <span id="error_register"></span>
function checkForm() {
var reg_error = document.getElementById("error_register").innerHTML = "";
var firstneme_check = document.getElementById("firstname_check");
var email_check = document.getElementById("email_check");
var female_male = document.getElementById("female_male");
if (firstneme_check  != "+") {
reg_error.innerHTML  = "Имя заполнено неверно";
}
if (email_check != "+") {
reg_error.innerHTML  = "E-mail заполнен неверно";
}
if (female_male != "+") {
reg_error.innerHTML  = "Пол не указан";
}
if (reg_error == "") return true;
if (reg_error != "") return false;
}

Вот сделал так, все равно не получается я уже не нзаю что делать, как я понял условия не хотят сравниваться,не знаю почему. :help:

рони 26.11.2013 14:37

Цитата:

Сообщение от Apelcun77
document.getElementById("error_register").text

откуда вы взяли это? вся строка 2 бред

Apelcun77 26.11.2013 14:59

Я изменил, просто скопировал суда немного другое, вот так тоже не работает ничего

рони 26.11.2013 15:08

Apelcun77,
я вам дал рабочий код и он работает!!!-- сделайте рабочими вашу форму и остальные скрипты .


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