2017-08-22 37 views
0

有沒有辦法使用類似$(".class").change(function(){$("#id").change(function(){的東西,而是將值更改爲選項元素的value屬性,如下所示?用於更改html元素上的「value」屬性值的jQuery函數

<select> 
    <option value="changeThis">opt</option> 
</select> 

我使用一個for循環來從關係數據庫中的選擇列表中的每個選項,所以我需要有一個功能,所以他們獨特的自動遞增的值。


新代碼:

<div class="facilitySelection"> 
    <select name="Facility" class="form-control"> 
     <option selected disabled>Select a facility...</option> 
     @{ 
      var i = 1; 

      foreach (var item in Model) 
      { 
      <option value="@i">@Html.DisplayFor(modelItem => item.FacilityName</option> 
      i++; 
      } 
     } 
    </select> 
</div> 

較新的代碼:

我有設施的一個表,一個ID和名稱字段。現在使用foreach循環直接從數據庫使用ID,而不是從腳本塊中的變量生成編號,以確保數據庫中的ID和名稱正確排列。

<div class="facilitySelection"> 
    <select id="Facility" name="Facility" class="form-control"> 
     <option selected disabled>Select a facility...</option> 
     @{ 
      foreach(var f in ViewBag.Facilities) 
      { 
       <option value="@f.Id">@f.Name</option> 
      } 
     } 
    </select> 
</div> 
+1

爲什麼不在設置選項的值時生成它們?我假設你在JS中創建選項? – Thijs

+0

@Thijs我在我的代碼中編輯了這個問題。 – ScopeY

+0

所以你不會在JS中生成選項,但是你使用的是MVC或其他東西。爲什麼不在那裏運行一個計數器並將其用於價值。這樣你就不必在JS中的客戶端「修復」你的問題。也許這將有助於:https://stackoverflow.com/a/7534952/1244780 – Thijs

回答

4
attr功能

您更改屬性:

$("selector-for-the-option").attr("value", "new value"); 

您還可以使用prop因爲option元素的value有一個叫value反射特性不同於input元素,其中的value物業是不是反映屬性爲value屬性):

$("selector-for-the-option").prop("value", "new value"); 
+0

完美。非常感謝你。 – ScopeY