mvc下拉值的验证?

时间:2014-05-26 15:38:33

标签: jquery asp.net-mvc validation

我使用foreach在mvc razor视图中创建了5个下拉菜单。如果在jquery中的多个下拉列表中选择了相同的值,我需要进行验证。

我可以使用下拉列表id轻松完成此操作,但如果我有更多动态创建的下拉菜单会怎么样?

是否有任何通用代码/方法可以执行此操作?

   </div>
 @Html.DropDownList("drdId"+count, new SelectList((ViewData["MYList"] as List<MYDATA>).Select(t => new { Value = t.Id, Text = t.Name }), "Value", "Text"))
                    </div>

我试过

function test(){         var arr = new Array($(“#count1”)。val(),$(“#count2”)。val(),$(“#count3”)。val(),$(“#count4”)。 VAL());         for(var i = 0; i

  

如何使数组arr动态显示更多数量的下拉菜单?

1 个答案:

答案 0 :(得分:1)

尝试以下逻辑。让我们假设每个下拉列表都有类&#34; testClass&#34;:

 function checkSelect(ref) {
            var len = $(".testClass").length;
            var count=0;
            for (var i = 0; i < len; i++) {
                if ($(".testClass:eq(" + i + ") option:selected").val() !="0" && $(".testClass:eq(" + i + ") option:selected").val() == $(ref).val())
                    count++;
            }
            if (count < 2)
                return true;
            else {
                $(ref).val("0");
                return false;
            }

         }

现在在更改下拉列表时调用此函数:

 $(document).ready(function () {
    $(".testClass").on("change", function () {
       if (!checkSelect($(this)))
          alert("Can not select duplicate");
      });
 });

希望这能解决您的问题。