簡體   English   中英

JavaScript 在 select 屬性中找到區分大小寫的值

[英]JavaScript Case sensitive value find in select attribute

大家好,我有下拉列表,我使用 asp.net 中的服務器端代碼綁定它,如下所示

if (ds1.Tables.Count > 0) {
  foreach (DataRow row in ds1.Tables[0].Rows) {
    if (row["EmpId"] != DBNull.Value) {
    ListItem item = new ListItem(row["EmpName"].ToString(), row["EmpId"].ToString());
    item.Attributes.Add("Duration", row["Duration"].ToString());
    EmpType.Items.Add(item);
   }
 }
}

我的 JavaScript 到 select 的下拉菜單有一個更改方法,持續時間可以正常工作

function UpdateDuration() {
  if (document.frmMain.EmpType.selectedIndex > 0) {
   var dur = document.frmMain.EmpType.item(document.frmMain.EmpType.selectedIndex).Duration;
   document.frmMain.Duration.value = dur;
  }
}

但是在某些情況下,根據我的要求,我將刪除其中一個選項並按如下方式動態添加它,這樣可以正常工作

$('#EmpType').append($('<option>', {
  value: 18,
  text: 'Part-Time',
  Duration:'60'
}));

但是在更改EmpType時,我正在調用UpdateDuration()並在其中一個文本框中顯示持續時間。 但是對於動態添加的選項,持續時間以小寫字母顯示,它無法獲取相關值。 可以在不區分大小寫的情況下獲取或添加選項。

在此處輸入圖像描述

如果 Duration 未定義,我可以模仿代碼來獲取另一個,但我想知道是否有其他方法而不是這樣做。

試試這個,檢查Durationduration

function UpdateDuration() {
  if (document.frmMain.EmpType.selectedIndex > 0) {
   var item = document.frmMain.EmpType.item(document.frmMain.EmpType.selectedIndex);
   var dur = item.Duration || item.duration;

   document.frmMain.Duration.value = dur;
  }
}

或使其一致始終使用小寫duration

item.Attributes.Add("duration", row["Duration"].ToString());

評論后更新

我也有這個,但是在添加選項后 JavaScript 中還有其他的,它被視為小案例

HTML 屬性區分大小寫。 不過,如果您想區分大小寫,我可以使用setAttributeNS 使用下面的代碼添加屬性

$('#EmpType').append($('<option>', {
  value: 18,
  text: 'Part-Time' 
}));

$('#EmpType option:last').get(0).setAttributeNS(null, "Duration", "60");

你應該看到這樣的屬性

在此處輸入圖像描述

例子

 $('#EmpType').append($('<option>', { value: 18, text: 'Part-Time', })); $('#EmpType option:last').get(0).setAttributeNS(null, "Duration", "60");
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <select id="EmpType"> </select>

暫無
暫無

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

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