Как использовать JQuery для обнаружения измененного значения события, когда пользователь перетаскивает текст в текстовое поле? - PullRequest
2 голосов
/ 01 сентября 2011

Я использую этот код jQuery

$('input').bind('change mouseup', ... )

, чтобы обнаружить, перетаскивает ли пользователь текст в мое поле ввода, и изменить его значение.Но это, кажется, не работает.Почему это не работает и как я могу заставить его работать?

Ответы [ 3 ]

7 голосов
/ 30 ноября 2011
var inputField = $("input");
var oldValue = inputField.text();
inputField.bind("drop", function() {
    //when the drop happens the input value will not be updated yet
    //use a timeout to allow the input value to change.
    setTimeout($.proxy(function() {
        if (this.value !== oldValue) {
            $(this).trigger('change');
        }
    }, this), 0);
});
$("input").bind("change", function() {
    oldValue = this.value;
});

запустите код: http://jsfiddle.net/paulwesterberg/FJuvz/5/

2 голосов
/ 04 августа 2013

jQuery 1.10.1 - у меня был успех с этим ...

$('body').on('input paste drop', '#txt-some-id, function() {
    $('#btn-some-id').prop("disabled", $(this).val().length === 0);
});
1 голос
/ 01 сентября 2011

Вы можете использовать событие jQuery paste с небольшим интервалом ожидания, пока значение не будет вставлено, если вы хотите использовать его или вызвать событие изменения.Попробуйте это

$("input").bind('paste', function(e) {
        var $el = $(this);
        setTimeout(function() {
            //Here you can use the pasted value or trigger the text change event
            $el.trigger('change');
        }, 100);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...