SORU
26 HAZİRAN 2013, ÇARŞAMBA


jQuery textbox change olayı'textbox kadar ateş t odağı kaybettiğinde değil mi?

Bir textbox jQuery change olayı textbox dışında ben ' i kadar ateş etmez buldum.

HTML:

<input type="text" id="textbox" />

JS:

$("#textbox").change(function() {alert("Change detected!");});

KEMAN: http://jsfiddle.net/K682b/

Benim uygulama metin her karakter değişikliği konusunda harekete olayı gerektirir. Ben bile yerine keyup... kullanarak denedim

$("#textbox").keyup(function() {alert("Keyup detected!");});

...ama keyup olayı sağ tıklatın ve yapıştır ateş olmadığı bilinen bir gerçektir.

Herhangi bir çözüm? Hem dinleyicileri herhangi bir soruna neden olacak olan?

CEVAP
26 HAZİRAN 2013, ÇARŞAMBA


Her iki olay için bağlama yapmak için tipik bir yoldur. Ayrıca yapıştır olayı bağlayabilirsiniz.

Bunun gibi birden fazla etkinlik için bağlayabilirsiniz:

$("#textbox").on('change keyup paste', function() {
    console.log('I am pretty sure the text box changed');
});

Eğer bu konuda titiz olmak istiyorsa, yanında metin sürükleme karşılamak için yoktur bağlamak, ve lastValue değişken metin gerçekten değişti mi emin olmak için ekleyiniz:

var lastValue = '';
$("#textbox").on('change keyup paste mouseup', function() {
    if ($(this).val() != lastValue) {
        lastValue = $(this).val();
        console.log('The text box really changed this time');
    }
});

Ve eğer super duper titiz olmak istiyorsanız, o zaman bir aralık sayacı, otomatik doldurma, eklentileri, vb karşılamak için kullanmanız gerekir:

var lastValue = '';
setInterval(function() {
    if ($("#textbox").val() != lastValue) {
        lastValue = $("#textbox").val();
        console.log('I am definitely sure the text box realy realy changed this time');
    }
}, 500);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Blendtec

    Blendtec

    30 EKİM 2006
  • Dylan Brenan

    Dylan Brenan

    22 Aralık 2009
  • jedimasterkyle

    jedimasterky

    11 ŞUBAT 2006