ďťż
Podstrony
|
telcocafeOto kod mojej funkcji (Walidacja nicku):function vnick(){ if(document.getElementById("nick").value != ''){ if(xmlHttp && (xmlHttp.readyState==4 || xmlHttp.readyState==0)){ try{ xmlHttp.open("GET", "vnick.php?nick="+document.getElementById("nick").value, true); xmlHttp.onreadystatechange = checknick(); xmlHttp.send(null); } catch(e){ throw(e.toString()); } } else{ setTimeout("vnick()", 500); } } } Na pozór wszystko ok.. Ale IE (LOVE) znajduje tu błąd w linijce "catch(e){". Zaś gdy usuwam instrukcje Try-Catch znajduje go w linijce: "xmlHttp.send(null);" W jakikolwiek działający sposób zakładam obiekt activeX (MSXML2.XMLHTTP.4.0/MSXML2.XMLHTTP.3.0/MSXML2.XMLHTTP/Microsoft.XMLHTTP) To IE i tak wyrzuca błąd: "Niezgodność typów" Czy ma ktoś jakiś pomysł skąd to może się brać i jak to wyeliminować? Typowy błąd. Do onreadystatechange przypisujesz funkcję. Źle. To ma być nazwa wywołująca tzw. native code. Po prostu usuń nawiasy. Dzięki. Faktycznie. Teraz mam następny problem. Błąd: "Obiekt nie obsługuje tej metody" Jak obiekt xmlHttp może nie obsługiwać podstawowego responseText? :D Kod: function checknick(){ if(xmlHttp.readyState == 4){ if(xmlHttp.status == 200){ try{ nickuniq = xmlHttp.responseText; if(nickuniq=='1'){ document.getElementById("nickerr").innerHTML = "Podany nick jest wolny!<br />"; document.getElementById("nickerr").className = "free"; } else{ document.getElementById("nickerr").innerHTML = "Podany nick jest już zajęty!<br />"; document.getElementById("nickerr").className = "nofree"; } } catch(e){ if(debugMode){ alert('tu!'); alert("Błąd serwera: "+e.toString()); } else{ alert("Błąd serwera"); } } } else{ if(debugMode){ alert("Błąd serwera: "+xmlHttp.statusText); } else{ alert("Błąd serwera"); } } } else{ setTimeout("checknick();", 100); } } Czemu wrzucasz to w blok wyjątku? Jakiej przeglądarki używasz? Czy zmienna nickuniq jest zadeklarowana? nie była zadeklarowana :D Już działa :) Dzięki :) |
|||
Sitedesign by AltusUmbrae. |