Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Скрипт не работает в Опере и IE (https://javascript.ru/forum/css-html-browser/45179-skript-ne-rabotaet-v-opere-i-ie.html)

alex-boa 17.02.2014 21:33

Скрипт не работает в Опере и IE
 
Здравствуйте всем.
По существу:
Скрипт:
<script>
					function validateForm()
					{
					var x=document.forms["myForm"]["name"].value;
					var y=document.forms["myForm"]["phone"].value;
					var z=document.forms["myForm"]["meil"].value;
					
					if (x==null || x=="Ваше Имя" || x==" Ваше Имя")
					  {
					  alert("Необходимо заполнить поле Имя!");
					  return false;
					  }
					if ((y==null || y==" Ваш Телефон" || y=="Ваш Телефон") && (z==null || z==" Ваш Email" || z=="Ваш Email"))
					  {
					  alert("Необходимо заполнить поле Телефон или Email!");
					  return false;
					  }
					}
			</script>

Форма
<form method='POST' name="myForm" onsubmit="return validateForm()">
					
					<input type='text' name='name' class='input' onclick="this.value='';" onfocus="this.select()" onblur="this.value=!this.value?' Ваше Имя':this.value;" value="Ваше Имя">
					
					<input type='text' name='phone' class='input' onclick="this.value='';" onfocus="this.select()" onblur="this.value=!this.value?' Ваш Телефон':this.value;" value="Ваш Телефон">
					
					<input type='text' name='meil' class='input' onclick="this.value='';" onfocus="this.select()" onblur="this.value=!this.value?' Ваш Email':this.value;" value="Ваш Email">
					
					<textarea name="comment" cols="27" rows="3" onclick="this.value='';" onfocus="this.select()" onblur="this.value=!this.value?' Ваш Комментарий':this.value;" value="Ваш Комментарий">Ваш Комментарий</textarea>
					
					<input onclick="yaCounter23826040.reachGoal('zakazzvonka'); return true;">
					<input type='hidden' name='qwe' value='1'>
				</form>


Во всех браузерах алерты всплывают, в Опере и IE - нет.

Консоль оперы выдаёт:

Event thread: submit
Uncaught exception: TypeError: Cannot convert 'document.forms["myForm"]["name"]' to object
Error thrown at line 33, column 5 in validateForm() in http://site:
var x=document.forms["myForm"]["name"].value;
called from line 1, column 0 in <anonymous function>(event) in http://site:
return validateForm()


Поделитесь соображениями, пожалуйста...

рони 17.02.2014 23:09

alex-boa,
а что возвратит функция когда всё правильно?

alex-boa 18.02.2014 06:28

отправляет письмо методом post. ну, вернее передаёт в форму разрешение на отправку...

рони 18.02.2014 07:12

Цитата:

Сообщение от alex-boa
вернее передаёт в форму разрешение

я что - то этого неувидел разрешения

alex-boa 18.02.2014 07:17

а его там и нет. при несоблюдении условий заполнения полей вызывается запрет, а по умолчанию - разрешение есть. но с этим проблем нет. письма отправляются. проблема в том, что в опера и IE они отправляются и при несоблюдении условий заполнения полей…. т.е. скрипт, запрещающий их отправку не работает… и алертов нет.

рони 18.02.2014 07:20

alex-boa,
версии браузеров где глюк?

alex-boa 18.02.2014 07:30

opera 12.16
IE 9
кстати в opera 19 на макинтоше работает...

danik.js 18.02.2014 08:06

Цитата:

Сообщение от alex-boa
document.forms["myForm"]["name"]'

Приехали... Имя инпута конфликтует с собственным свойством формы.
Либо переименуй инпут, либо document.forms["myForm"].elements["name"]

alex-boa 18.02.2014 10:06

Спасибо, но оба способа не помогли (форма отправляется, алертов нет)

Консоль оперы:

Event thread: submit
Uncaught exception: TypeError: Cannot convert 'document.forms["myForm"].elements' to object
Error thrown at line 33, column 5 in validateForm() in http://site:
var x=document.forms["myForm"].elements["name"].value;
called from line 1, column 0 in <anonymous function>(event) in http://site:
return validateForm()


Event thread: submit
Uncaught exception: TypeError: Cannot convert 'document.forms["myForm"]["name1"]' to object
Error thrown at line 33, column 5 in validateForm() in http://site:
var x=document.forms["myForm"]["name1"].value;
called from line 1, column 0 in <anonymous function>(event) in http://site:
return validateForm()

рони 18.02.2014 10:21

alex-boa,
а как форму отправить ? на чего нажать нужно?


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