Autor Zpráva
DarkMeni
Profil
Zdravím, zkoušim udělat takový dynamický formulář který by uživateli řekl jestli zadal hodnoty do výstupů správně a při kontrole jestli se už někdo pod takovým jménem nezaregistroval mam nějakou chybu na kterou nemůžu přijít:
var Inputs = document.forms.form.getElementsByTagName("input");
for(I=0;I < Inputs.length;I++){
	var Supported = false;
	for(S in SupportInputs){if(Inputs[I].name==SupportInputs[S]){var Supported = true;break;}}
	if(Supported){
		Timeout1 = false;
		Timeout1Name = false;
		Inputs[I].onkeyup = function(Event){ 
			var Name = Event.target.name.toLowerCase();
			if(Timeout1Name==Name||!Timeout1Name){clearTimeout(Timeout1);}
			var ToTimeout =	"var Name = \""+Event.target.name.toLowerCase()+"\";"
				+"Input = document.getElementsByName(Name)[0];"
				+"if(Name=='name'){"
				+"	var R = Math.round(Math.random(1)*100);"
				+"	var HttpObject = HttpConnect();"
				+"	alert(Input.value);if(HttpObject){"
				+"		HttpObject.open('GET','ajax.php?query=register&get=name&value='+Input.value+'&randint='+R,true);"
				+"		HttpObject.onreadystatechange = function(){"
				+"			if(HttpObject.readyState==4 && HttpObject.status==200){"
				+"				if(HttpObject.responseText==0){AlertInput('name',true,InputAlerts['name_ok']);}else{AlertInput('name',false,InputAlerts['name_f1']);}"
				+"			}"
				+"		};HttpObject.send(null);"
				+"	}else{AlertInput('name',false,InputAlerts['undefined']);}"
				+"}else if(Name=='email'){"
				+"	var ok = Input.value.match(/^[a-z0-9\.\_\-]{1,25}@[a-z0-9\.\_\-]{1,25}\.[a-z]{2,4}$/i);"
				+"	if(ok){"
				+"		var R = Math.round(Math.random(1)*100);"
				+"		var HttpObject = HttpConnect();"
				+"		if(HttpObject){"
				+"			HttpObject.open('GET','ajax.php?query=register&get=email&value='+Input.value+'&randint='+R,true);"
				+"			HttpObject.onreadystatechange = function(){"
				+"				if(HttpObject.readyState==4 && HttpObject.status==200){"
				+"					if(HttpObject.responseText==0){AlertInput('email',true,InputAlerts['email_ok']);}else{AlertInput('email',false,InputAlerts['email_f2']);}"
				+"				}"
				+"			};HttpObject.send(null);"
				+"		}else{AlertInput('email',false,InputAlerts['undefined']);}"
				+"	}else{AlertInput('email',false,InputAlerts['email_f1']);}"
				+"}else if(Name=='pw1'){"
				+"	var ok = Input.value.match(/^[^\;\"\'].{5,}$/);"
				+"	if(ok){AlertInput('pw1',true,InputAlerts['pw1_ok']);}else{AlertInput('pw1',false,InputAlerts['pw1_f1']);}"
				+"	var pw2 = document.getElementsByName('pw2')[0];"
				+"	if(pw2.setted){"
				+"		if(Input.value==pw2.value){AlertInput('pw2',true,InputAlerts['pw2_ok']);}else{AlertInput('pw2',false,InputAlerts['pw2_f1']);}"
				+"	}"
				+"}else if(Name=='pw2'){"
				+"	Input.setted = true;"
				+"	var pw1 = document.getElementsByName('pw1')[0].value;"
				+"	var pw2 = Input.value;"
				+"	if(pw1==pw2){AlertInput('pw2',true,InputAlerts['pw2_ok']);}else{AlertInput('pw2',false,InputAlerts['pw2_f1']);}"
				+"}else{}"
			Timeout1 = setTimeout(ToTimeout, 500);
			Timeout1Name = Name;
		}
	}
}

Kontrola emailu která je dost podobná a taky používá XMLHttp Objekt mi funguje správně ale u if(Name=='name') ne a ne zavolat Input.value, například Input.type mi třeba alertem vrátí "text" ale Input.value vrátí pokaždý prázdno, nevěděl by někdo čím to? Při kontrole emailu Input.value normálně vrací to co uživatel zadal do pole.
DarkMeni
Profil
Tak příčina je v tom že jméno inputu je 'name', zajímavý ale po změně na 'name1' to už funguje takže by se to už mohlo brát jako vyřešené.
Chamurappi
Profil
Reaguji na DarkMeniho:
Ten kód je šílený. Viz Časté potíže, zajímavosti a poučné debaty » Nepoužívejte eval, ani jeho obdoby.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0