Событие onchange не вызывает функцию
Есть reg.js:
function regv(polename,polename2) { //проверка сервером любого поля var value = document.getElementById(polename).value; if(polename2) value2=document.getElementById(polename2).value; else polename2=polename; var xmlhttp = getXmlHttp(); xmlhttp.open('POST', '../regv.php', true); xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); if(polename2 != polename) xmlhttp.send(encodeURIComponent(polename) + "o=" + encodeURIComponent(value) + "&" +encodeURIComponent(polename2) + "=" + encodeURIComponent(value2)); else xmlhttp.send(encodeURIComponent(polename) + "=" + encodeURIComponent(value)); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4) { if(xmlhttp.status == 200) { if(xmlhttp.responseText != 0) { document.getElementById(polename2 + "_error").innerHTML = xmlhttp.responseText; } else { document.getElementById(polename2 + "_error").innerHTML = " "; } } } }; }; function pasve() { //локальная проверка совпадения пароля var pas1 = document.getElementById('pas').value; var pas2 = document.getElementById('pasv').value; if ( pas1 == pas2 ) { document.getElementById("pasv_error").innerHTML = " "; } else { document.getElementById("pasv_error").innerHTML = "Пароли не совпадают"; } }; На страничке стоит два input'a: <input type="password" id="pas" name="pas" size="22" required onchange="regv('pas');"><br> <div id="pas_error" class="error_reg"> </div> <input type="password" id="pasv" name="pasv" size="22" required onchange="regv('pas','pasv');"> <div id="pasv_error" class="error_reg"> </div> Если onchange="regv('pas','pasv');", то все работает. А если onchange="pasve();", то функция не вызывается. В чем может быть проблема? p.s. <a href="#" onclick="pasve();">a</a> работает. |
Ищите ошибку в функции regv() (да-да, именно в ней). Для начала закомментарьте ее полностью и посмотрите будет ли вызываться pasve(), если да, то потом по кусочкам разкомментаривайте первую функцию, и увидите когда появляется проблема.
|
rgl, я пробовал закомментировать regv, не помогло.
С проблемой я разобрался, но причины так и не понял. переписал строчку function pasve() {, вроде бы все буква в букву, но теперь работает... function pasve() { var pas1 = document.getElementById('pas').value; var pas2 = document.getElementById('pasv').value; if ( pas1 == pas2 ) { document.getElementById("pasv_error").innerHTML = " "; } else { document.getElementById("pasv_error").innerHTML = "Пароли не совпадают"; } } |
Часовой пояс GMT +3, время: 18:13. |