Почему я не могу вручную отправить эту форму? - PullRequest
5 голосов
/ 19 марта 2012

Я пытаюсь что-то сделать до того, как моя форма отправится. Следующий код выполняется без ошибок, но моя форма никогда не отправляется. Я не могу сказать, что случилось ..

<form method="post" id="weber-form" class="af-form-wrapper" action="http://www.aweber.com/scripts/addlead.pl">
    <input class="textInputaweb" type="text" name="email" id="email" size="20" value='Enter Email'  onfocus=" if (this.value == 'Enter Email' ) { this.value = ''; }" onblur="if (this.value == '') { this.value='Enter Email';} " />
    <input id="submit" name="submit" class="submitaweber" type="submit" value="Submit"  />
</form>

<script>
    $(function() {
        $('#submit').click(function (e) {
            e.preventDefault();
            // Do something...
            $('#weber-form').submit();
        });
    } 
</script>

Ответы [ 4 ]

10 голосов
/ 19 марта 2012

для работы следующего скрипта, кнопка отправки должна НЕ иметь name или id со значением "submit" .кнопка, подобная этой, будет работать:

<input class="submitaweber" type="submit" value="Submit"  />

Демо: http://jsfiddle.net/MYht8/

$(function() {

    //we bind to the form instead of the form button
    //using .on() (jQ1.7+)
    $('#weber-form').on('submit', function(e) {

        //prevent form submission
        e.preventDefault();

        //do stuff

        //use the native submit so we wont trigger 
        //this handler again
        this.submit();
    });
});​
2 голосов
/ 19 марта 2012

Используйте свой код в разделе document.ready(). Я надеюсь, что это будет работать!

$(document).ready(function(){
    $('#submit').click(function (e) {
       e.preventDefault();
       // Do something...  
       $('#weber-form').submit();
     });
});
1 голос
/ 05 апреля 2013

Иосиф Мечтатель хорошо объяснил проблему.

Вы можете использовать собственный способ отправки HTMLFormElement для решения проблемы:

HTMLFormElement.prototype.submit.call($('#weber-form')[0]);
1 голос
/ 19 марта 2012

Попробуй это. Это должно работать.

$ ('# weber-form'). Submit (function (e) {

e.preventDefault();

// Do something...

$('#weber-form').submit();

});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...