Сброс раскрывающихся списков с использованием 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"));
}
Тем не менее, это не похоже на бизнес.
Есть идеи?
2 ответа
Почему вы меняете индекс на -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%>');
}
Это на самом деле из-за конфликта между этим javascript и jquery нашей CMS - все отсортировано сейчас!
Разрешение:
Я обернул элементы управления в элемент div (называемый оберткой), а затем применил.uniform к элементам управления в указанном элементе div.
function pageLoad(sender, args) {
if (args.get_isPartialLoad()) {
$("#wrapper select, #wrapper span, #wrapper input").uniform();
}
}
Это гарантирует, что CSS поддерживается.
Спасибо за предложения, хотя.