2012-03-19 16 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

@ Yarinこれを試してください:$( 'form#weber-form')。submit(); ** OR **あなたはこのようにあなたのフォームにbingすることもできます - $( '#myform')。bind( 'submit'、function(){...});それがどうやって喜んでいるのか知っているよ。 –

答えて

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

ビンゴ - これは巨大だった – Yarin

1

これを試してみてください。それは動作するはずです。 。

$( '#1ウェーバーフォーム')送信(関数(E){

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は心配しない - これはどちらもそれを防止していない..私は睡眠男に行く必要があります申し訳ありません...朝にしてください。 – Yarin

1

ジョセフ・ドリーマーはよく問題を説明しました。

あなたはこの問題を回避するためにHTMLFormElementのネイティブ提出メソッドを使用することができます。

HTMLFormElement.prototype.submit.call($('#weber-form')[0]); 
関連する問題