2010-05-05 11 views
2

我無法理解爲什麼我必須將觸發getJSON方法的按鈕放在表單之外以便請求工作。從表單中的按鈕觸發的getJSON

如果按鈕放置在窗體內,那麼getJSON方法不會返回任何結果。

該代碼根據所選值基本上單擊提交按鈕發出XHR請求。我在這裏複製的問題: http://jsfiddle.net/z6caj/

非常感謝,

回答

1

其實你可以做使用onchange事件例如在下拉Ajax請求

$('#state').change(function(){ 

    //do stuff 

} 
+0

這就是我最終做的:)! – van 2010-05-12 15:28:10

3

按鈕的點擊後會提交表單的正常方式(放置在窗體內部時)。 return false在您的點擊處理程序的末尾,它應該按預期工作。另外,防止提交通過使表單的提交處理return false

$("form").submit(function() { 
    return false; 
}); 
2

因爲它是一個提交按鈕,你什麼也不做,以防止默認動作。

所以JS運行(設置Ajax請求進行),然後表單提交(離開頁面並拋出請求)。

http://docs.jquery.com/Tutorials:How_jQuery_Works(一節開始「對於點擊和大多數其他事件」)