簡體   English   中英

jQuery單擊事件的下拉列表項

[英]Jquery click event for drop down list items

我在MVC應用程序中有一個下拉列表。 在下拉列表中選擇一個項目(包括相同項目)時,我想觸發一個功能。 但是,列表中的第一項無法觸發該功能,因此應將其禁用。 我下面有一些代碼,這些代碼最初可以工作,但是在單擊有效選項然后再次單擊--Select--之后,它仍然會觸發代碼。 我該如何解決?

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開始。

$('#ddlcountries').on('change', function() {
  var index = $(this).find('option:selected').index();
  if (index > 0) {
    alert('yay');
    runCode();
  } else {
    alert('nay');
    return;
  }
})

我刪除了禁用第一個選項的代碼,因為在第一個更改之后我無法使其保持禁用狀態。 我將jQuery修改為觸發事件以:

jQuery('#ddlCountries').find('option:gt(0)').click(function () {
    runCode()
});

然后,將樣式添加到--Select--框中以使其變為灰色。 您仍然可以單擊它,但它不會執行任何操作。 不完全是我想做的事,但足夠接近

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM