2012-03-28 5 views
1

私のプロジェクトでMVC3を使用しています。Jqueryを使ってテーブルのIDで隠しフィールドを埋める方法

私はテーブルとテキストエリアのビューを持っています。各行には「名前」列とその行に表示されていないIDがあります。

はまた、私は持っている:

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

ユーザーが私の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'に、クリックされた行のIDの一意のリスト、または最も最近にクリックされた行のIDだけが含まれますか? –

+0

クリックされた行のIDの文字列をcontaai​​nする必要があります –

+0

私はいくつかの.Netを行っただけですが、.Netの場合でもOn Clickで簡単にできると思います。それによると、IDに区切り記号を付けるのですか? – kwelch

答えて

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> 

は、あなたがそれを行うには、それを望んでいた場合、それはすでにクリックしたのIdsを削除含まれていませんのでご注意ください。

関連する問題