[英]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 未定義,我可以模仿代碼來獲取另一個,但我想知道是否有其他方法而不是這樣做。
試試這個,檢查Duration
和duration
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.