我使用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动态显示更多数量的下拉菜单?
答案 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");
});
});
希望这能解决您的问题。