2012-02-20 90 views
0

嘿傢伙我試圖通過這種方式工作,但我有一個問題,甚至進入我的功能表單提交在JQuery中,我已經設置了幾個console.logs,但它從來沒有真正 進入我的第一個功能,有誰知道我做錯了什麼?JQuery提交永不提交?

代碼

<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 2012-02-20 17:38:54

0

這條線:

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

...綁定一個在DOM在腳本運行的時候提交事件,每一種形式

由於腳本:

  • 出現在<head>
  • 不是由被稱爲onready/onload事件延遲的/ etc

...有沒有表單元素的事件處理程序界。

要麼移動腳本,使其出現在表單元素之後(例如在</body>之前),要麼在您的準備好的事件處理程序中調用該函數。