2014-11-03 85 views
0

我很新的MVC,我很難理解如何獲取我生成的複選框的值(基本上是ID)。這裏是我的複選框:處理複選框並獲取值

<div id='myCheckboxDiv'> 
    <input type="checkbox" onclick="checkAll(this)">Check All 
    @foreach (var form in @Model.DetailObject.DoaFormGroupDocuments) 
    { 
    <br> 
    var checkBoxId = "chk" + form.DocumentId; 
    @Html.CheckBox(checkBoxId, new { value = form.DocumentId, @checked = true }); 
    @form.DocumentName; 
    } 
</div> 

基本上我想要做的就是到過複選框被選中的ID,並在保存到列表我在頁面底部單擊保存按鈕後。

我已經橫跨東西會像這樣來處理一切,但我不太清楚如何真正使用它...

var values = $('#myCheckboxDiv').find('input:checkbox:checked').map(function() { 
    // get the name .. 
    var nameOfSelectedItem = this.attr('name'); 
    // skip the ‘chk’ part and give me the rest 
    return nameOfSelectedItem.substr(3); 
}).get(); 
+0

你能解釋你想要做的事情嗎?如果您試圖回覆選中的複選框的值,那麼您可能會以錯誤的方式進行操作 – 2014-11-03 22:12:00

回答

0

你需要考慮的唯一的事情就是name的價值您的複選框將具有的屬性。您現在正在處理它的方式,您的帖子主體將有一個相當隨機的chkN命名參數集合,其中N是某個數字。模型綁定器需要一些類似的名稱作爲你的動作方法的參數,以便將發佈的值綁定到有用的東西上。對於某些變量(DocumentId值),這是一個很高的順序。

最好的辦法是設置您的複選框,而是作爲收藏品,這意味着給他們的名字chk[0]chk[1]等,然後在你的動作,你能接受像List<string> chk參數,並且將包含一個列表所有已發佈的值。