2012-03-28 87 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,如果你希望它这样做。

相关问题