使用javascript重置下拉列表

时间:2010-09-23 08:45:16

标签: javascript textbox drop-down-menu onfocus

我有以下场景 - 一些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"));
}

然而,这似乎没有做生意。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

当您的默认项目位于索引-1时,为什么要将索引更改为0

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

应该做的伎俩。

<强>更新

您可以验证是否设置了下拉菜单?要调试ResetDropDowns()方法,只需在开头键入关键字debugger即可。这将破坏编译器,以便您可以单步执行代码。

示例:

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

答案 1 :(得分:0)

这实际上是因为这个javascript和我们的CMS'jquery之间存在冲突 - 现在全部排序了!

分辨率:

我将控件包装在div(称为包装器)中,然后将.uniform应用于所述div中的控件。

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

确保维持css。

感谢您的建议。