我在MVC应用程序中有一个下拉列表。当选择下拉列表中的项目(包括相同的项目)时,我想触发一个功能。但是,列表中的第一项不能触发该功能,应该禁用它。我在下面有一些代码最初工作,但是在单击有效选项然后单击 - 再次选择 - 之后,它仍然会触发代码。我该如何解决这个问题?
MVC控制
@Html.DropDownList("ddlCountries", (IEnumerable<SelectListItem>)ViewBag.Countries, "--Select--", new { @class = "form-control" })
jQuery触发DDL点击事件
$('#ddlCountries option:not(:first)').click(function () {
runCode()
});
jQuery禁用第一个选项
jQuery('#ddlCountries option:contains("--Select--")').attr('disabled', 'disabled');
答案 0 :(得分:0)
获取所选选项的索引,并在事件触发时检查它是否大于0。索引是基于0的。
$('#ddlcountries').on('change', function() {
var index = $(this).find('option:selected').index();
if (index > 0) {
alert('yay');
runCode();
} else {
alert('nay');
return;
}
})
答案 1 :(得分:0)
我删除了代码以禁用第一个选项,因为我无法在第一次更改后让它保持禁用状态。我修改了jQuery以触发事件:
jQuery('#ddlCountries').find('option:gt(0)').click(function () {
runCode()
});
然后我在--Select--框中添加样式以使其变灰。你仍然可以点击它但它不会做任何事情。不完全是我试图做的但足够接近