2015-08-31 20 views
0

這是我正在使用的腳本。Asp.net jQuery在外面工作,但不在foreach循環內

$(document).ready(function() { 
    $('#selectall').click(function() { 
     $('.selectedId').prop('checked', isChecked('selectall')); 
    }); 
}); 

function isChecked(checkboxId) { 
    var id = '#' + checkboxId; 
    return $(id).is(":checked"); 
} 

function resetSelectAll() { 
    // if all checkbox are selected, check the selectall checkbox 
    // and viceversa 
    if ($(".selectedId").length === $(".selectedId:checked").length) { 
     $("#selectall").attr("checked", "checked"); 
    } else { 
     $("#selectall").removeAttr("checked"); 
    } 

    if ($(".selectedId:checked").length > 0) { 
     $('#edit').attr("disabled", false); 
    } else { 
     $('#edit').attr("disabled", true); 
    } 
} 

而這是cshtml視圖。

<table id="notificationsTableId"> 
    <thead> 
    <tr role="row"> 
     <th rowspan="1" colspan="1"> 
      <input type="checkbox" id="selectall" /> 
     </th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr class="results-table-row odd"> 
     <td> 
      <input type="checkbox" class="selectedId" name="selectedId" onclick="resetSelectAll();"/> 
     </td> 
    </tr> 
    <tr class="results-table-row even"> 
     <td> 
      <input type="checkbox" class="selectedId" name="selectedId" onclick="resetSelectAll();"/> 
     </td> 
    </tr> 
    <tr class="results-table-row even odd"> 
     <td> 
       <input type="checkbox" class="selectedId" name="selectedId" onclick="resetSelectAll();" /> 
     </td> 
    </tr> 
    </tbody> 
</table> 

現在選擇按鈕會像它應該那樣工作,如果我檢查它將檢查該表內的所有日期。 但我想要做的是我想要那個按鈕來選擇頁面上的所有複選框。 但是,如果我給一個複選框我foreach循環中相同的ID是這樣的:

@foreach (var date in group) 
{ 
    var isoDate = date.ToString("yyMMdd"); 
    var day = date.ToString("ddd", new CultureInfo("sv-SE")).Substring(0, 2); 
    <label style="padding-left: 10px"> 
     <input type="checkbox" id="selectedId" name="isoDate" value="@isoDate"/>@[email protected] 
    </label> 
} 

它不工作,它仍然只能選擇在頁面頂部的3的複選框。我會假設它會檢查所有的複選框是否正確? 它結束了是這樣的: enter image description here

+1

ID應該是唯一使用它作爲類屬性,你的HTML標記是錯誤的 – ssilas777

+0

使用類,而不是 – Oluwafemi

回答

2

您正在使用selectedId的ID,而不是像其他複選框類。如下圖所示

@foreach (var date in group) 
{ 
    var isoDate = date.ToString("yyMMdd"); 
    var day = date.ToString("ddd", new CultureInfo("sv-SE")).Substring(0, 2); 
    <label style="padding-left: 10px"> 
     <input type="checkbox" class="selectedId" name="isoDate" value="@isoDate"/>@[email protected] 
    </label> 
} 
+0

啊,我明白了。謝謝。 –

+0

高興地幫助你:) –