2010-03-10 83 views
9

我試圖實現類似於37signals'ta-da list的效果 - 我希望我的用戶能夠通過檢查「完成」框來檢查列表中的項目換句話說,在檢查框時將表單提交給服務器。有沒有人知道一個包含這樣的教程的教程,或者可以指出我正確的方向?當複選框被選中時提交表單 - 教程

感謝 羅布

回答

4

如果我理解正確你的問題:

你可以使用jQueryAJAX做到這一點。在第一個例子,我做這件事而不提交整個形式,只有提交複選框的值:

jQuery("#myCheckbox").click(function() { 
    var $checkbox = jQuery(this); 
    var checkboxData = "checkboxvalue=" + $checkbox.val(); 

    jQuery.ajax({ 
     url: "http://some.url.here", 
     type: "POST", 
     data: checkboxData, 
     cache: false, 
     dataType: "json", 
     success: function(data) { 
      if(data["success"]) { 
      //do some other stuff if you have to 
      //this is based on the assumption that you're sending back 
      //JSON data that has a success property defined 
      } 
     } 
    }); 
}); 

想必你必須在服務器端,處理後的東西。

如果你真的希望提交一個表單,你可以做同樣的事情上面,除非你序列化表單數據:

jQuery("#myCheckbox").click(function() { 
    var formData = jQuery("#formID").serialize(); 

    jQuery.ajax({ 
     url: "http://some.url.here", 
     type: "POST", 
     data: formData, 
     cache: false, 
     dataType: "json", 
     success: function(data) { 
      if(data["success"]) { 
      //do some other stuff if you have to 
      //this is based on the assumption that you're sending back 
      //JSON data that has a success property defined 
      } 
     } 
    }); 
}); 
0

<input type="checkbox" onclick="yourForm.submit()">
以上將提交表單當你的複選框被點擊... idk,如果這就是你想要的。
所以它會做的默認表單提交過程...

+0

但會帶他離開頁面。我相信他想留在同一頁面上(如果他想逐個勾選複選框,他會的)。 – 2010-03-11 02:25:31

+1

「一個表單在檢查框時被提交給服務器」= /我以爲他的意思是'form.submit()' – Warty 2010-03-11 06:15:30

15

其簡單...

<input type="checkbox" onclick="this.form.submit();"> 
+0

正是我在找的東西。 – 2013-06-03 14:29:51

+1

我也選擇了這種方法 - 它可能不像AJAX方法那麼光滑,但這意味着我的代碼仍然適用於禁用JavaScript的人員,並且不會在服務器上添加新的安全漏洞,而AJAX代碼正在呼叫。 – 2013-09-01 21:29:02

相關問題