Dopiero zaczynam w js. Opisze sytuacje. Funkcja (poniżej służy do walidacji danych. Dane sprawdzam w pliku php. Sprawdzam odpowiedź (pobraną AJAX'em, wykorzystuje
mintAJAX). W zależności od odpowiedzi zmieniam kolor danego inputa i blokuje przycisk wysyłania.
var spr= new Array()
function wery(input,tar,div,su,index) // poprawność danych (id inputa, plik sprawdzający, div do odp, nazwa formularza z inputem do odblokowania,index )
{var blokowac;
var req = mint.Request();
req.method = "post";
req.AddParam(input, $(input).value);
req.OnSuccess = function () { if( req.responseText!='OK')
{spr[index]=1;} // ukrycie'
else
{ spr[index]=0;} //pokazanie
for (var i=0;i<spr.length;i++)
{ if(spr[i]=='1')
{ document.getElementById(input).style.backgroundColor= '#ff0000';
blokowac=1; } // czyli zablokowany
else {document.getElementById(input).style.backgroundColor= '#ffffff';}
}
}
req.Send(tar,div);
//alert("blokowac=" + blokowac);
if(blokowac=='1')
{document.getElementById(su).submit.disabled = true;}
else
{document.getElementById(su).submit.disabled = false; }
}
I przykładowy formularz
<form id="pop" method="post"> <input id="imie" type="text" size="3" name="imie" value=<?php echo $imie; ?> onchange="wery('imie','sprz/w.php','od','pop','1')">
...
<input id="nrtel" type="text" size="3" name="nrtel" value=<?php echo $nrtel; ?> onchange="wery('nrtel','sprz/w.php','od','pop','15')">
<input id="submit" name="submit" disabled="true" type="submit" value="ZAPISZ">
I problem (którego nie mogę zrozumieć)
W listingu funkcji jest w komentarzu alert (//alert("blokowac=" + blokowac); ). Jeżeli jest on włączony (tzn. nie jest jako komentarz) to skrypt ładnie w zależności od response blokuje i zmienia kolor inputa (no i oczywiście pokazuje mi się alert. Jeżeli go wylącze (wezmę w komentarz) to wszystko bierze w łeb.
Dlaczego?