2012-02-20 11 views
0

こんにちは私はこの方法で作業しようとしていますが、JQueryでフォームを送信するために私の関数の内部に入っている問題を抱えています。私はいくつかのconsole.logを設定しましたが、実際には決してありません は、誰が私が間違っていたか知っていますか?このラインJQuery submit submit submits?

コード

<script src='http://www.google.com/jsapi'></script> 
<script> google.load('jquery', '1.7.1'); </script> 

<script> 
    console.log('outside function'); 
    $("form").submit(function() { 
     console.log('submit happened'); 
     queryJsonServer($(this), "class/"); 
     return false; 
    }); 

    function queryJsonServer(form, path) { 
     var inputs = $('input:radio').serializeArray(); 
     var params = createAction("saveFormData", inputs); 
     var url = path + "json.php"; 
     $.post(url, params, function(data) { 
      console.log(data); 
      $.("form").submit(); 
     }); 

    } 
</script> 

HTML

<form> 

<fieldset> 
<legend>Select Orders</legend> 

<table id='master'></table> 

    </div> <!-- end input1 --> 
    <div> 
    <button name="select" type="submit" id="btnLoad" value="load">Refresh</button> 
    <button name="select" type="submit" id="btnJson" value="down">Download JSON</button> 
    <button name="select" type="submit" id="btnView" value="view">View/Enter</button> 
    </div> 
</fieldset> 

</form> 

答えて

1

jQuery関数で関数をラップして、DOMの準備ができたときに実行することがあります。

<script> 
$(function(){ 
    console.log('outside function'); 
    $("form").submit(function() { 
     console.log('submit happened'); 
     queryJsonServer($(this), "class/"); 
     return false; 
    }); 

    function queryJsonServer(form, path) { 
     var inputs = $('input:radio').serializeArray(); 
     var params = createAction("saveFormData", inputs); 
     var url = path + "json.php"; 
     $.post(url, params, function(data) { 
      console.log(data); 
      $.("form").submit(); 
     }); 

    } 
}); 
</script> 
+0

それでした。ありがとう。承認待ち;) – ehime

0

$("form").submit(function() { 

...スクリプトが実行時にDOM内のすべてのフォームにイベントを提出バインド

スクリプト導入されたバージョン:<head>

    • 表示されますが、イベントハンドラがあるときに何のフォーム要素が存在しない...

    onready /オンロード/などと呼ばれることによって遅延されませんバウンド。

    フォーム要素の後に(例えば</body>の直前など)スクリプトを移動するか、準備完了イベントハンドラで関数を呼び出します。