2015-10-13 33 views
1

我發現張貼馬西莫·迪·皮耶羅在谷歌組代碼的所有複選框:添加選擇在SQLFORM.grid表頭

<button onclick="jQuery('input[type=checkbox]').each(function(k){jQuery(this).attr('checked', 'checked');});">select all</button> 

我創建這個問題,因爲根據以往的問題,我張貼在這裏,有什麼如果我從學生主列表中檢索到達到500+或1000+以上的記錄,並且我創建的表沒有全選按鈕?很難點擊並點擊並點擊等等......任何人都知道我會把代碼放在哪裏?所以如果表上有全選複選框,則很容易檢索記錄。

+0

您需要複選框上點擊它時,這將標誌着網格的所有複選框。對?你能詳細說明你的問題嗎? –

回答

0

將上面的代碼放在視圖中您希望按鈕可見的任何地方。它會在頁面上找到所有複選框。

+0

感謝您的回覆Remco ...我會稍後再試...感謝還有Gaura Vichare的回覆我認爲Remco解決了我的問題... – MeSH

1

隨着

form = SQLFORM.smartgrid(..,selectable= lambda ids: your_function_name_to_trigger(ids),...), 

添加到您的控制器功能:

if form.elements('th'): 
    form.elements('th')[0].append(SPAN('All', BR(), INPUT(_type='checkbox', 
     _onclick="jQuery('input[type=checkbox]').each(function(k{jQuery(this) 
      .attr('checked', 'checked'));});"))) 

這將「檢查」所有形式的複選框上的所有按鈕點擊時。

+0

您粘貼的代碼有一些錯誤,但這個想法很有效。我在這個問題上使用了js代碼,但是這裏有這個想法,它可以滿足需要 – acaruci

0

Jquery Checkbox check all解決方案相結合塞爾答案,並且效果很好:

if form.elements('th'): 
    form.elements('th')[0].append(SPAN('All', BR(), INPUT(_type='checkbox', 
    _onclick="jQuery('input:checkbox').not(this).prop('checked', this.checked);" 
    )))