Помогите пожалуйста в одном моменте. Как-то я его проморгала…
Есть форма с полями и капчей.
Поля проверяются с помощью jquery.validationEngine.js. Всё работало.
Сделала аяксом проверку капчи, и тут какая-то фигня началась…
Капча работает, проверяется. Но если набрать правильно только её, то форма сабмитится с пустыми полями, которые с проверкой. А должна останавливаться. Если без капчи - всё работает.
Вот текст проверки капчи, может я там намутила :
function getXmlHttpRequestObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
} else {
alert("Your browser doesn't support the XmlHttpRequest object.");
}
}
var receiveReq = getXmlHttpRequestObject();
var form = document.getElementById('frm');
//var response = document.getElementById('response');
//Initiate the AJAX request
function makeRequest(url, param) {
//If our readystate is either not started or finished, initiate a new request
if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
//Set up the connection to captcha_test.html. True sets the request to asyncronous(default)
receiveReq.open("POST", url, true);
//Set the function that will be called when the XmlHttpRequest objects state changes
receiveReq.onreadystatechange = updatePage;
receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
receiveReq.setRequestHeader("Content-length", param.length);
receiveReq.setRequestHeader("Connection", "close");
//Make the request
receiveReq.send(param);
}
}
//Called every time our XmlHttpRequest objects state changes
function updatePage() {
//Check if our response is ready
if (receiveReq.readyState == 4) {
if (receiveReq.responseText==="no") {
//Set the content of the DIV element with the response text
//document.getElementById('response').innerHTML = receiveReq.responseText;
$("#respose").addClass('messageboxerror').text('Введенные символы должны совпадать с символами на картинке !');
//Get a reference to CAPTCHA image
img = document.getElementById('img');
//Change the image
img.src = '/img.php?' + Math.random(); return false;} else {form.submit();}
}
}
//Called every time when form is perfomed
function getParam(theForm) {
//Set the URL
var url = '/captch.php';
//Set up the parameters of our AJAX call
var postStr = theForm.tx.name + "=" + encodeURIComponent( theForm.tx.value );
//Call the function that initiate the AJAX request
makeRequest(url, postStr);
}
В форме пишу
onSubmit="getParam(this)"
Вот и вся проверка. Но почему вместе не работает ? Подскажите пожалуйста…