SORU
14 Ocak 2010, PERŞEMBE


Nasıl form submit olayı gönderin sebep olan düğme alabilir miyim?

Göndermek için form tetikleyen gönder butonuna değerini bulmaya çalışıyorum

$("form").submit(function() {

});

Muhtemelen kovabilirdim $("input[type=submit]").() 'I her düğme için olay ve bazı değişkeni, ama üzerinde gönderme formu düğmesini çekip biraz daha az zarif görünüyor.

CEVAP
23 Temmuz 2013, Salı


Ben bu cevabı kabataslak olarak document.activeElement kaldıraçlı: How to get the focused element with jQuery?

$form.on('submit', function() {
    var $btn = $(document.activeElement);

    if (
        /* there is an activeElement at all */
        $btn.length &&

        /* it's a child of the form */ 
        $form.has($btn) &&

        /* it's really a submit element */
        $btn.is('button[type="submit"], input[type="submit"], input[type="image"]') &&

        /* it has a "name" attribute */
        $btn.is('[name]')
    ) {
        console.log("Seems, that this element was clicked:", $btn);
        /* access $btn.attr("name") and $btn.val() for data */
    }
});

Düğmesi her zaman onu tıkladıktan sonra duruldu unsur olmasının avantajı var. Budeğileğer tıkladıktan sonra blur() doğru yaparsan çalışır.

@Ne başka bir olumsuzluk tespit etti. Eğer bir kullanıcı bir metin alanına enter) formu gönderdiğinde, document.activeElement ayarlı değil. Bu kendine dikkat et, input[type="text"] ve benzer keypress olayları işleme var.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Khoury

    Adam Khoury

    23 Ocak 2008
  • Brandon McCrary

    Brandon McCr

    15 Ocak 2012
  • Willie D.

    Willie D.

    16 Aralık 2006