限制MVC4中Listboxfor中的总选择

时间:2014-08-08 12:21:21

标签: c# javascript visual-studio-2010 asp.net-mvc-4

我正在设置一个使用MVC4的前端。有几个Listboxfor框,但我想限制每个框的数量达到一定数量。例如,Listboxfor1应该有最多5个可选项,而Listboxfor2应该最多有7个。

我在网上做了几次搜索,只发现了使用webforms和javascript的服务器端修复。虽然这都是桃子和奶油,但我似乎无法弄清楚如何将它应用于MVC。

下面是我的listboxfor代码的代码片段

@Html.ListBoxFor(model => model.Games,
   new SelectList(Model.Games.Where(m => m.action == action), "GameID", "Title"),
   new { id="listbox" + action, @class="lbGames"})

1 个答案:

答案 0 :(得分:0)

使用Html帮助程序无法解决此问题。您可以使用javascript进行一些解决方法。 此@Html.ListBoxFor将转换为html,如下所示:

   <select id="listbox" class="lbGames">
      <option value="Action1">Action1</option>
      <option value="Action2">Action2</option>
      ...
   </select>

所以你可以用jquery写这样的东西:

$("#listbox").change(function() {
  var mySelectedOptions = $.find('#listbox option:selected');
  if(if(mySelectedOptions).length > 5){
     // Your code here, if selected amount exceeds 5
     alert('hey bro you selected more than 5 elements!!!');
  }
});

注意,我没有测试过这段代码。这只是一个快速的例子,可以帮助您找到正确的方法。