簡體   English   中英

使用JavaScript重置下拉列表

[英]Reset dropdown lists using javascript

我有以下情況-一些dropdwon列表和一個文本框。

當用戶單擊文本框時,我想將這些下拉菜單“重置”為原始值:

Javascript:

function ResetDropDowns() 
{
    var ddlSuppliers = document.getElementById('<%=ddlSuppliers.ClientID%>');
    var ddlResponse = document.getElementById('<%=ddlResponse.ClientID%>');
    var ddlImportStatus = document.getElementById('<%=ddlImportStatus.ClientID%>');

    ddlSuppliers.selectedIndex = -1;
    ddlResponse.selectedIndex = -1;
    ddlImportStatus.selectedIndex = -1;  
}

后面的代碼:

tbxAutoCompleteSupplier.Attributes.Add("onFocus", "return ResetDropDowns();");  

protected void ddlSuppliers_DataBound(object sender, EventArgs e)
{
    ddlSuppliers.Items.Insert(0, 
    new ListItem("--Please Select Supplier--", "0"));
}

但是,這似乎與業務無關。

有任何想法嗎?

為什么在默認項位於索引0時將索引更改為-1

ddlSuppliers.selectedIndex = 0;
ddlResponse.selectedIndex = 0;
ddlImportStatus.selectedIndex = 0; 

應該做到的。

更新資料

您可以驗證是否設置了下拉菜單嗎? 要調試ResetDropDowns()方法,只需在開頭鍵入關鍵字debugger 這將破壞編譯器,因此您可以單步執行代碼。

例:

function ResetDropDowns() 
{
    debugger; //compiler will break here
    var ddlSuppliers = document.getElementById('<%=ddlSuppliers.ClientID%>');
}

這實際上是因為此javascript與我們CMS的jquery之間發生沖突-現在全部排序!

解析度:

我將控件包裝在div中(稱為包裝器),然后將.uniform應用於所述div中的控件。

function pageLoad(sender, args) {
        if (args.get_isPartialLoad()) {
            $("#wrapper select, #wrapper span, #wrapper input").uniform();
        }
    }

這樣可以確保css得到維護。

謝謝你的建議。

暫無
暫無

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

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