2010-09-23 104 views
1

我有以下情形 - 几个dropdwon列表和一个文本框。使用javascript重置下拉列表

我想 '复位' 这些下拉菜单的原始值,当用户点击文本框:

的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

出于好奇最终是什么罪魁祸首? – Peter 2010-09-30 12:19:47

回答

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%>'); 
} 
+0

你好彼得 - 我已经把它改为0,但仍然没有快乐 - 奇怪的是正在进行。 – 2010-09-23 09:01:42

+1

@Ricardo - 你试过手动调用ResetDropDowns()并查看它是否有效? – DashK 2010-09-23 09:23:59

0

这其实是因为这个JavaScript和我们的CMS”的jQuery之间的冲突 - 现在所有排序!

分辨率:

我包中的控件一个div(称为包装器)中,然后内施加的.uniform到控制所述DIV。

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

确保css得到维护。

感谢您的建议。