JQuery изменить элемент ввода (в реальном времени) - PullRequest
0 голосов
/ 10 декабря 2011

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

    $(".replace_path").focusout(function() {
        $(".replace_path").val($(".replace_path").val().replace($(this).attr('texttoreplace'),""));
    });

Работает нормально, за исключением того, что я могу активировать только когдафокус отсутствуетЕсть ли способ добиться того же результата, инициируя событие в случае, если значение> 0?Потому что я получил другой источник Java-сценария, добавляющий текст к этому входу.(не набирается).

Спасибо,

Ответы [ 2 ]

1 голос
/ 10 декабря 2011

Вы можете использовать прослушиватель события change ():

$('.replace_path').change(function() {
  if ( $('.replace_path').val() > 0 ){
    alert('Handler for .change() called.');
  }
});

Но вы должны быть осторожны с запуском бесконечного рекурсивного цикла, поскольку focusout обновит значение .replace_path и вызовет функцию обратного вызова change.

0 голосов
/ 10 декабря 2011

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

Вы можете просто вызвать событие напрямую, хотя:

function yourJavaScript() {
   $(".replace_path").val('your custom text');
   $(".replace_path").trigger('focusout');
}
...