Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Некорректная работа скрипта в разных браузерах (https://javascript.ru/forum/misc/15799-nekorrektnaya-rabota-skripta-v-raznykh-brauzerakh.html)

en-k 13.03.2011 21:27

Некорректная работа скрипта в разных браузерах
 
В общем, выручайте, без вас видимо никак, моск поломан.
Есть скрипт который проверяет поля формы регистрации.
function provreg()
			{

				var obj_form=document.forms.reg;
				var obj_pole_logincheck=obj_form.logincheck;
				var obj_pole_nick=obj_form.nick;
				var obj_pole_passcheck=obj_form.passcheck;
				var obj_pole_pass=obj_form.pass;
				var obj_pole_rpasscheck=obj_form.rpasscheck;
				var obj_pole_rpass=obj_form.rpass;
				var obj_pole_emailcheck=obj_form.emailcheck;
				var obj_pole_mail=obj_form.mail;
				var obj_pole_name1check=obj_form.name1check;
				var obj_pole_name1=obj_form.name1;
				var obj_pole_name2check=obj_form.name2check;
				var obj_pole_name2=obj_form.name2;
				var obj_pole_tel1check=obj_form.tel1check;
				var obj_pole_tel1=obj_form.tel1;
				var obj_pole_yur=obj_form.yur;
				var obj_pole_company=obj_form.company;
				var obj_pole_siterules=obj_form.siterules;




				if ((obj_pole_nick.value=='') || (obj_pole_logincheck.value=='false') )
				{
				alert ("Некорректный логин.");
				return false;
				}

				if ((obj_pole_pass.value=='') || (obj_pole_passcheck.value=='false'))
				{
				alert ("Некорректный введен пароль.");
				return false;
				}
				if ((obj_pole_rpass.value=='') || (obj_pole_rpasscheck.value=='false'))
				{
				alert ("Некорректно введен пароль.");
				return false;
				}
				if ((obj_pole_mail.value=='') || (obj_pole_emailcheck.value=='false') )
				{
				alert ("Некорректно заполнен eMail.");
				return false;
				}
				if ((obj_pole_name1.value=='') || (obj_pole_name1check.value=='false'))
				{
				alert ("Некорректно заполнено поле Фамилия.");
				return false;
				}
				if ((obj_pole_name2.value=='') || (obj_pole_name2check.value=='false') )
				{
				alert ("Некорректно заполнено поле Имя.");
				return false;
				}
				if ((obj_pole_tel1.value=='') || (obj_pole_tel1check.value=='false') )
				{
				alert ("Некорректно заполнено поле контактный телефон.");
				return false;
				}


                if (obj_pole_yur.checked)
				{
						if (obj_pole_company.value=='')
						{
          				alert ("Некорректно заполнено название организации.");
						return false;
						}
				}
				if (!obj_pole_siterules.checked)
				{
            			alert ("Прочтите и согласитесь с правилами сайта, либо прекратите регистрацию.");
						return false;
  				}



                 document.forms.reg.submit();


	}



Так вот в IE срабатывают все проверки, а в остальных браузерах Opera Safari Chrome Mozilla срабатывает только первая проверка скрипта, вот эта:
if ((obj_pole_nick.value=='')

и дальше проходит все без проверок т.е. вывод alert'a после строк :
if ((obj_pole_nick.value=='') || (obj_pole_logincheck.value=='false') )
				{
				alert ("Некорректный логин.");
				return false;
				}
alert("Alert!!!");

не срабатывает в этих браузерах никогда!

Помогите пожалуйста.

en-k 13.03.2011 21:45

Может быть все дело в том что input type="hidden"
var obj_pole_logincheck=obj_form.logincheck;

создается динамически вот этим кодом?
$(function() {
			$('#login').keyup(function () {
				val = $('#login').val();
				$.ajax({
				type: "POST",
				url: "checkregform.php",
				data: "login="+val,
				success: function(html){
					$("#indicatorlogin").html(html);

				}
				});
			});
		});



Файл checkregform.php -

if ($_POST['login']){

		$login = $_POST['login'];
		//Проверяем, есть ли пробелы в пароле
		if($login!='')
		{

		       if ((strlen($login)<3) or (!preg_match('/^[a-zA-Z0-9]+$/', $login)))
		       {
		       	   $html = '<div style=" width:25px; height:25px;" valign=center><img src="images/block.png" width=25 height=25/><input type="text" id="logincheck" name="logincheck" value="false"></div>';
						//$html .= "Простой";
						 $_SESSION["logincheck"]='0';

		       }
		       else {
						$q=mysql_query("select nick from users where nick='".addslashes($login)."'");
					if(mysql_num_rows($q)>0)
					{
			        	$html = '<div style=" width:25px; height:25px;" valign=center><img src="images/block.png" width=25 height=25/><input type="text" id="logincheck" name="logincheck" value="false"></div>';
						$_SESSION["logincheck"]='0';
						//$html .= "Простой";
			  		}
			  		else
			  		{
			  			$html = '<div style=" width:25px; height:25px;" valign=center><img src="images/clean.png" width=25 height=25/><input type="text" id="logincheck" name="logincheck" value="true"></div>';


						//$html .= "Надежный";
			  		}
		  		}
		}

		echo $html;

	}



Потому как загвоздка именно в этом

en-k 15.03.2011 14:54

Отбой, нашел эллетенты через GetEllementByID


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