ФорумПрограммированиеJavaScript → Сабмит формы

Сабмит формы

  • Malin-ka

    Сообщения: 83 Репутация: N Группа: Кто попало

    Spritz 9 декабря 2009 г. 18:47

    Здравствуйте !
    Помогите пожалуйста в одном моменте. Как-то я его проморгала…

    Есть форма с полями и капчей.
    Поля проверяются с помощью 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)"

    Вот и вся проверка. Но почему вместе не работает ? Подскажите пожалуйста…
  • Baboot

    Сообщения: 440 Репутация: N Группа: Адекваты

    Spritz 10 декабря 2009 г. 2:01, спустя 7 часов 13 минут 49 секунд

    Мне кажется что у тебя jQuery'вская проверка выпадает из за того что ты ее переопределяешь getParam(this). Поэтому срабатывает одна
  • Malin-ka

    Сообщения: 83 Репутация: N Группа: Кто попало

    Spritz 10 декабря 2009 г. 17:41, спустя 15 часов 39 минут 20 секунд

    Крутила-вертела, может и в этом загвоздка, но у меня ничего не выходит… :(
    Прикрутила уже стандартный jquery.validate, но в последний момент жаба задушила. Не хочу менять 6 кб на 40.

    Всё равно я его победю !
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 10 декабря 2009 г. 17:51, спустя 10 минут 48 секунд

    ну победюки его!)
    Сапожник без сапог
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 11 декабря 2009 г. 2:34, спустя 8 часов 42 минуты 24 секунды

    Malin-ka, умница, так держать! А дебагер у тебя есть?
    adw/0
  • Malin-ka

    Сообщения: 83 Репутация: N Группа: Кто попало

    Spritz 11 декабря 2009 г. 9:52, спустя 7 часов 17 минут 47 секунд

    Есть firebug, но видимо я не очень в нем разумею. Кто бы научил ? :)
    В этих штуках в обоих есть сабмит формы. То есть или одно, или другое. Тоесть нужно всё повесить на что-то одно.
    Пыталась в скрипт валидации вкрутить проверку капчи.

    Блин, может у кого есть готовое красивое решение ? :) А то мозх плавится уже…
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 11 декабря 2009 г. 9:59, спустя 7 минут 5 секунд

    могу лед подарить! чтобы на моск положить, моск нельзя потерять
    Сапожник без сапог
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 11 декабря 2009 г. 10:07, спустя 7 минут 58 секунд

    http://habrahabr.ru/blogs/webdev/50445/
    http://habrahabr.ru/blogs/webdev/50619/
    http://habrahabr.ru/blogs/webdev/50930/
    http://habrahabr.ru/blogs/webdev/51113/
    Спустя 55 сек.
    важнее всего для тебя сейчас 3-я ссылка
    Спустя 13 сек.
    я в свое время изучал фарбаг методом тыка
    adw/0
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 11 декабря 2009 г. 10:07, спустя 5 секунд

    влажнее :)
    все умрут, а я изумруд
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 11 декабря 2009 г. 10:08, спустя 1 минуту 6 секунд

    еще есть вариант почитать оф. документацию
    Спустя 42 сек.
    Как подметил md5 все через влажнение и тыком :)
    adw/0

Пожалуйста, авторизуйтесь, чтобы написать комментарий!