Триггер jQuery onChange - PullRequest
       21

Триггер jQuery onChange

6 голосов
/ 05 февраля 2012

У меня есть текстовое поле input, которое заполняется URL-адресом изображения с помощью функции jQuery. Как использовать событие onChange input для запуска функции jQuery?

Ответы [ 4 ]

12 голосов
/ 05 февраля 2012

Если вы обновите поле с помощью JavaScript, то после изменения значения просто вызовите его change()

$('#myId').val('new_url').change();
6 голосов
/ 05 февраля 2012

Попробуйте это -

$('#myId').trigger('change');

Поместите его в любую функцию, где вы меняете URL в текстовом поле.

5 голосов
/ 05 февраля 2012

попробуйте это:

$("#myId").trigger('event_name')

где event_name - это событие, с которым вы связали свою функцию проверки, например keyUp или change

0 голосов
/ 05 февраля 2012

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

Единственный раз, когда это не срабатывало, это когда я перетаскивал текстовое вырезание с рабочего стола в поле ввода, но это было связано с тем, что оно было выделено и достаточно точно, когда поле ввода потеряло фокус, событие вызвало (я не могу думать ни о каких других случаях использования)

Вы можете сделать что-то, как показано ниже, используя событие blur() или focusout(), которое, как я считаю, по сути, является событием change

function foo(e) {
    alert(e.type + ' triggered');
}

$('input').blur(function(e) {
    $t = $(this);
    if ($t.data('oVal') != $t.val()) {
        $t.data('oVal', $t.val());
        foo(e);
    }
})
...