Содержимое элемента не обновляется после действия onBlur - PullRequest
1 голос
/ 23 мая 2011

Я пытаюсь редактировать содержимое выбранного ввода, когда текст вводится в текстовое поле с помощью jQuery. Это мой TextBox

<input id="id_subsector_selector" type="text" maxlength="100" name="subsector_selector" onblur="onSubSectorSelectorChange(this);"/>

и это мой множественный выбор

<select id="id_subsector" name="subsector" multiple="multiple"> <option value="14">Yazılımevi </option> </select>

Это моя функция JavaScript (я знаю, что это тривиально)

function onSubSectorSelectorChange(item) {
    $('select#id_subsector').html("");
}

Вопрос в том, когда я ввожу символ в текстовое поле, хотя функция onSubSectorSelectorChange запускается, содержимое окна выбора не изменяется, пока я не нажму где-нибудь на странице или не нажму кнопку табуляции.

Возможно, проблема в триггерном действии "onBlur", но я не смог найти подходящую функцию. Я жду любого комментария или решения!

Спасибо

Ответы [ 3 ]

2 голосов
/ 23 мая 2011

размытие срабатывает, когда элемент теряет фокус.То, что вам нужно, это событие keyup:

http://api.jquery.com/keyup/

1 голос
/ 23 мая 2011

Избавиться от атрибута onblur в целом и выполнить позднее связывание в событии document.ready() с событием keyup:

$(document).ready(function(){
    $("#id_subsector").keyup(function(){
        onSubSectorSelectorChange(this);
    });
});

Или даже более кратко:

$(document).ready(function(){
    $("#id_subsector").keyup(function(){
        $(this).html("");
    });
});
1 голос
/ 23 мая 2011

Если вы хотите выполнить метод onSubSectorSelectorChange при нажатии клавиш, вам нужно использовать атрибут onkeydown вместо этого. onblur будет работать только при изменении фокуса.

Просмотрите атрибуты onkeydown, onkeypress и onkeyup.

...