2012-06-16 3 views
0

У меня проблема с динамическим выпадающим списком в IE9.IE9 выпадающий список выпуск

У меня есть таблица, и один из столбцов заполняется с комбо, один комбо в ряд, и каждый из этих комбо создается с помощью кода HTML 5.0, как это:

<select id="cboABC0" class="RetrieveList cboABC" data-index="0" data-info="3" name="cboABC"> 
<option selected="selected" value="N">Select</option> 
<option value="P">Partial</option> 
<option value="C">Complete</option> 
<option value="CA">Cancelled</option> 
</select> 
</td> 

Я хочу что-то должно произойти, когда один из вариантов выбран в списке, в зависимости от выбранного варианта, и для этого я пробовал разные способы использования событий класса RetrieveList, с JQuery:

$(".RetrieveList").live(''click'',function(event){  

var val_info = $(this).attr("data-info"); 
var val_index = $(this).attr("data-index"); 

var sOptionSelected = $(this).val(); 

alert(sOptionSelected); 

// Here is where I want to do something , depending on the selected option. 

}); 

с «живой клик», по крайней мере событие щелчка получает «уволен», но оно не распознает, что я выбираю, он остается с последним вариантом, который я выбрал, например, если ничего не было выбрано, и я открываю комбо, перехожу к другому параметру и нажимаю этот параметр, он переходит к событию click, но значение который возвращается с $ (this) .val(), является предыдущим, а не только выбранным. С другой стороны, если я выберу параметр с помощью клавиш со стрелками, а затем дам клик, идентификатор распознает новое значение. Это похоже на то, что он распознает только изменение «щелчка», но не значение.

Я пробовал использовать «привязку клика», «живое изменение» и «привязку изменений», и с этими параметрами клик даже не «увольняется».

Опять же, все это происходит с IE9, с Mozilla, у меня не было серьезных проблем.

Если кто-нибудь может мне помочь в этом вопросе, я буду очень благодарен.

Заранее спасибо,

С уважением!

Бренда

ответ

2

Во-первых, у вас есть ''click'', когда это должно быть просто 'click'. Я бы не использовал click в любом случае, вместо этого используйте change, чтобы он срабатывал всякий раз, когда список меняется, а не только когда пользователь нажимает на него. click будет срабатывать, даже если вы просто нажмете на него, не делая другого выбора (нажмите, чтобы просмотреть все выпадающие элементы)

Фиксация этого, он работает во всех браузерах для меня.

DEMO

+0

Благодаря Sachleen, я пытался ваше предложение, и использовать «изменить» вместо «нажмите кнопку», но это событие только увольняют, если изменить параметр с помощью кнопок и дать «войти», он никогда не срабатывает, если я выбираю его с помощью мыши, любые идеи о том, почему это может произойти? Благодаря! –

+0

Является ли демо, которое я предоставил, работает так, как должно быть? Если это так, проблема находится где-то еще в вашем коде, и нам нужно будет убедиться, что это ее изолировать. Проверьте консоль (гаечный ключ> Инструменты> Консоль Javascript в Chrome) для любых ошибок – sachleen

0

попробовать:

$(".RetrieveList").live('change',function(event){  

var val_info = $(this).attr("data-info"); 
var val_index = $(this).attr("data-index"); 

var sOptionSelected = $(this).val(); 

alert(sOptionSelected); 

// Here is where I want to do something , depending on the selected option. 

}); 
+0

Спасибо chrisvillanueva, я попробовал ваше предложение и использовал «change» вместо «click», но событие запускается только после изменения опции с помощью клавиш и дать «войти», он никогда не срабатывает, если я выбираю его с помощью мыши, любые идеи о том, почему это может произойти? Благодаря! –

+0

привет. этот код работает для меня. пожалуйста, просмотрите демо здесь: http://jsfiddle.net/nickadeemus2002/7PBWE/ может возникнуть проблема в другом месте. – chrisvillanueva

Смежные вопросы