2012-09-18 62 views
0

所以我使用JQuery datatables.net(www.datatables.net),並有很多成功。但最近我試圖添加一些複選框列,但沒有太大的成功。在視覺上一切正常,但是當我真正檢查/取消選中時,它不會更改底層的值,無論是使用chrome檢查元素還是使用javascript捕獲該元素。 我是否需要更新表或其他內容來刷新DOM對象?jquery datatables.net複選框沒有設置檢查屬性

的Javascript創建的數據表:

$('#userGroupSettings').dataTable({ 
"bJQueryUI": true, 
"aoColumns": [ 
/* ID */ 
    { 
    "bVisible": false 
}, 
/* Group Name */null, 
/* Display Group */null, 
/* Group Minimised*/null, 
/* Send Fault Email*/null], 
"aaSorting": [[1, "asc"]] 

});

創建表

ASP MVC剃刀代碼:

<table id="userGroupSettings"> 
    <thead> 
     <th>Group ID</th> 
     <th>Group Name</th> 
     <th>Display Group</th> 
     <th title="When loading the webpage this will determine if the group is minimised or not">Group Minimised</th> 
     <th title="Send me a fault email when an issue occurs in this group">Send Fault Email</th> 
    </thead> 
    <tbody> 
    @foreach (MvcApplication2.Models.UserGroup group in user.Groups) 
    { 
     <tr> 
      <td>@group.GroupID</td> 
      <td>@group.GroupName</td> 
      <td><input class="SettingsDisplayGroup" type="checkbox" name="displayGroup" value="@group.DisplayGroup" @(group.DisplayGroup ? "checked=\"checked\"" : "")/></td> 
      <td><input class="SettingsMinimiseGroup" type="checkbox" name="minimiseGroup" value="@group.GroupMinimised" @(group.GroupMinimised ? "checked=\"checked\"" : "")/></td> 
      <td><input class="SettingsSendFaultEmail" type="checkbox" name="sendFaultEmail" value="@group.SendFaultEmail" @(group.SendFaultEmail ? "checked=\"checked\"" : "")/></td> 
     </tr> 
    } 
    </tbody> 
</table> 
<button id="saveUserGroupSettings">Save</button> 

任何幫助表示讚賞

+0

我很確定調試工具只是不更新​​HTML。我有複選框與你一樣,他們工作正常。我正在使用FF和螢火蟲和HTML不更新,但它按預期工作。當他們發佈它們時它們工作正常嗎? –

回答

0

所以我解決了這個問題。當我訪問我一個字符串轉換成一個javascript元素中的數據 我的主要問題是因爲它沒有足夠的檢查=「選中」屬性它被設置爲false:

$($('#userGroupSettings').dataTable().fnGetData(i)[2]) 

所以不是通過與fnGetData的數據表循環的,我不得不使用JavaScript錶行元素,並通過他們這樣搜索:

$('#userGroupSettings tbody tr').each(function() { 
    var isChecked = $(this).find('.SettingsDisplayGroup')[0].checked; 
} 

我想是因爲我創建從數據表內容(字符串)一個新的jQuery元素時,已檢查的財產沒有在那裏設置

只需要注意,如果你有任何datatables.net隱藏的列,那麼你將無法像訪問它們一樣。

1

選中複選框只是意味着它的價值將被作爲職務,並不需要改變任何東西。當然,如果你有多個同名的複選框,如果其中一個複選框被選中,它的值將被髮送。