2012-03-28 89 views
1

我在我的項目上使用MVC3。如何用我的表中的ID填充我的隱藏字段與Jquery

我有一個表和textarea視圖。每行都有「名稱」列和一個不顯示在行中的ID。

我也有:

@Html.HiddenFor(model => model.SelectedQuestions) 

當用戶點擊一個排32,我想SelectedQuestions這是一個字符串被通過該行的ID填補。

這是我的控制器內對我的表:

foreach (var player in playerGroupedByTeam) 
       { 
        var playerViewModel = new playerViewModel(); 

        playerViewModel.PlayerId = player.Id; 
        playerViewModel.PlayerName = Player.PlayerName; 

        TeamPlayer.Player.Add(playerViewModel); 
       } 

任何建議如何我可以使用jQuery解決這個問題?

在此先感謝!

+1

您是否希望'SelectedQuestions'包含單擊行的Ids的唯一列表,或者僅包含最近單擊的行的ID? – 2012-03-28 12:47:53

+0

它應該包含點擊行的一串ID – 2012-03-28 12:51:35

+0

我只做了一些.Net,但我相信即使在.Net中使用「點擊」也會更容易。有了這個說法,你想讓ID有一個分隔符? – kwelch 2012-03-28 13:06:07

回答

0

這應該工作:

<table id="player-table"> 
    @foreach(var player in this.Model.Players) 
    { 
    <tr><td data-player-id="@player.PlayerId">@player.PlayerName</td></tr> 
    } 
</table> 
@this.Html.HiddenFor(model => model.SelectedQuestions) 

<script type="text/javascript"> 
    $(function() { 
     var selectedQuestions = $("#SelectedQuestions"); 
     $("#player-table").find("td").click(function() { 
      var clickedId = $(this).attr("data-player-id"); 
      var currentIds = selectedQuestions.val().split(","); 
      if (!$.inArray(clickedId, currentIds)) { 
       currentIds.push(clickedId); 
      } 
      selectedQuestions.val(currentIds.join(",")); 
     }); 
    }); 
</script> 

請注意它不包括消除已被點擊的ID,如果你希望它這樣做。

相關問題