Mam problem z którym nie mogę sobie poradzić, robię formularz rejestracyjny w którym bądź co bądź trzeba wpisywać dane z polskimi znakami. Po wpisaniu przy akcji onBlur() ajax odwołuje się do skryptu w którym sprawdza czy jest ok, jeżeli tak zmienia czcionkę w inpucie na zieloną, a jak źle to dodaje czerwone obramowanie do inputa.
Stronka jest kodowana w utf-8. Wszystko pisałem i sprawdzałem pod Firefox'em, niestety na Internet Explorerze jest problem. W firefoxie wpiszę 'małopolskie' i jest ok, w IE dostaje błąd :/
gdzie może być problem?
CODE
http.open("GET", "systemInc/validate.php?what=" + inputName + "&value=" + inputValue, true);
http.onreadystatechange=function() {
if(http.readyState == 4) {
if (http.responseText == 'ok') {
document.getElementById(inputName).style.color='#005000';
document.getElementById(inputName).style.borderColor='#B2B2B2';
}
else {
document.getElementById(inputName).style.color='#B90000';
document.getElementById(inputName).style.borderColor='#B90000';
}
}
http.onreadystatechange=function() {
if(http.readyState == 4) {
if (http.responseText == 'ok') {
document.getElementById(inputName).style.color='#005000';
document.getElementById(inputName).style.borderColor='#B2B2B2';
}
else {
document.getElementById(inputName).style.color='#B90000';
document.getElementById(inputName).style.borderColor='#B90000';
}
}
Rozwiązano, okazało się że w IE mimo kodowania strony UTF8 wysłane do ajaxa dane wcale nie są utf'owe. Dodanie funkcji polskieDoUTF8 rozwiązało problem.