2012-03-19 3 views
4

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

<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> 
+0

Нужно видеть разметку, наверное. – Interrobang

+0

Опубликовать еще код/​​разметку ... – ankur

+0

@ Ярин попробуй это: $ ('form # weber-form'). Submit(); ** ИЛИ ** вы также можете бинговать свою форму следующим образом: $ ('# myform'). Bind ('submit', function() {...}); lemme знает, как это происходит, приветствия –

ответ

8

для следующего скрипта для работы, the submit button must NOT have a name or id with the value "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(); 
    }); 
});​ 
+0

Bingo- спасибо, что это было огромно – Yarin

1

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

$ ('# Weber-форма') представляет (функция (е) {

e.preventDefault(); 

// Do something... 

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

});

+0

+1 для глаз орла – nikhil

+0

Извините, что не работает – Yarin

+0

Я отредактировал свой предыдущий ответ. Теперь он должен работать отлично! –

1

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

$(document).ready(function(){ 
    $('#submit').click(function (e) { 
     e.preventDefault(); 
     // Do something... 
     $('#weber-form').submit(); 
    }); 
}); 
+0

Я изменил свой ответ на рабочую версию - ему понадобилась document.ready И функция .click. Наконец, работая спасибо – Yarin

+0

SHT nevermind- это тоже не мешает. Мне нужно спать, ребята извините ... попробуйте утром. – Yarin

1

Джозеф Мечтатель объяснил этот вопрос хорошо.

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

HTMLFormElement.prototype.submit.call($('#weber-form')[0]); 
Смежные вопросы