大家好,我有下拉串列,我在其中使用 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 中的下拉選單有一個更改方法來選擇作業正常的持續時間
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 未定義,我可以模仿代碼來獲取另一個并獲取另一個,但我想知道是否有其他方法而不是這樣做。
uj5u.com熱心網友回復:
試試這個,檢查兩者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 屬性區分大小寫。盡管如此,如果您想區分大小寫,我可以使用
例子
$('#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>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/381694.html
標籤:javascript 网站
