1

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

但是,这似乎并没有做生意。

有任何想法吗?

4

2 回答 2

0

为什么在-1默认项目位于 index 时将 index 更改为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%>');
}
于 2010-09-23T08:55:36.800 回答
0

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

解析度:

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

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

这样可以确保维护 css。

不过感谢您的建议。

于 2010-09-23T16:46:27.953 回答