jQuery: Form gönderildikten sonra hangi düğmeyi tıklattı?


227

.submit()Form gönderimi için ayarlanmış bir etkinliğim var . Ayrıca sayfada birden çok form var, ancak bu örnek için burada yalnızca bir form var. .click()Her birine bir etkinlik uygulamadan hangi gönderme düğmesinin tıklandığını bilmek istiyorum .

Kurulum şu şekildedir:

<html>
<head>
  <title>jQuery research: forms</title>
  <script type='text/javascript' src='../jquery-1.5.2.min.js'></script>
  <script type='text/javascript' language='javascript'>
      $(document).ready(function(){
          $('form[name="testform"]').submit( function(event){ process_form_submission(event); } );
      });
      function process_form_submission( event ) {
          event.preventDefault();
          //var target = $(event.target);
          var me = event.currentTarget;
          var data = me.data.value;
          var which_button = '?';       // <-- this is what I want to know
          alert( 'data: ' + data + ', button: ' + which_button );
      }
  </script>
</head>
<body>
<h2>Here's my form:</h2>
<form action='nothing' method='post' name='testform'>
  <input type='hidden' name='data' value='blahdatayadda' />
  <input type='submit' name='name1' value='value1' />
  <input type='submit' name='name2' value='value2' />
</form>
</body>
</html>

JSFiddle'da Canlı Örnek

Her düğmeye bir .click () olayı uygulamanın yanı sıra, hangi gönderme düğmesinin tıklandığını belirlemenin bir yolu var mı?


2
İronik olan elbette bu bilginin sunucu tarafını belirlemek için önemsiz olmasıdır.
Neil

5
@Neil Formu $ .ajax () ve formdaki bir serializeArray () aracılığıyla gönderiyorsanız değil.
Aaron


1
Bir dinleyiciyi gönderme düğmelerine koyup formu manuel olarak göndermeye ne dersiniz?
JMRC

1
Form verilerinin serileştirilmiş versiyonuna bakıp düğmelerle eşleşmeye ne dersiniz name?
Augustin Riedinger

Yanıtlar:


235

Aynı soruyu sordum: Form gönderme olayından gönderime neden olan düğmeyi nasıl alabilirim?

Bu çözümü buldum ve oldukça iyi çalıştı:

$(document).ready(function() {
    $("form").submit(function() { 
        var val = $("input[type=submit][clicked=true]").val();
        // DO WORK
    });
    $("form input[type=submit]").click(function() {
        $("input[type=submit]", $(this).parents("form")).removeAttr("clicked");
        $(this).attr("clicked", "true");
    });
});

Birden çok formla ilgili durumunuzda bunu biraz değiştirmeniz gerekebilir, ancak yine de uygulanmalıdır


11
+1 Güzel çözüm. Form gönderme işleminin ajax şeklinde işlenmesi durumunda, tıklatılan özniteliği düğmeler arasında false değerine sıfırlayan bir ifade eklemek isteyebilirsiniz.
Chandu

1
Ah anlıyorum. Kendi "tıklandı" özelliğinizi ekliyorsunuz. Her yerde bir "tıkladı" boolean arıyordu ve bir yerde bir bulamadık. Kendim yapmayı hiç düşünmemiştim. İyi bir fikir!
hawkexp

9
Bunun düğme öğeleriyle değil, yalnızca giriş öğeleriyle çalıştığını unutmayın.
Bob.at.Indigo.Health

1
Düğme öğelerine sahip Chrome'da bu gereksizdir. Ben sadece send olayı işlemek, formdan bir FormData nesnesi oluşturmak ve her zaman tıklatılan düğmenin değerini içerir. FireFox bu davranışı İÇERMEZ ve bunun yerine düğme değerini hiç göndermez. Chrome, hangi düğmenin tıklandığını ve form verilerine otomatik olarak dahil ettiğini hatırlayarak, yukarıdaki çözüm gibi otomatik olarak bir şey yapıyor gibi görünüyor. Tabii ki, bu standart davranış eksikliği (yine de JavaScript'teki her şeyi rahatsız ediyor, bu yüzden şaşırmadım), özelliği işe yaramaz hale getiriyor.
Triynko

1
Ayrıca, gönderme öğelerinin giriş etiketi olması gerekmediği için "düğme [type = gönder]" (virgülle ayrılmış) seçicisini eklemeyi düşünün.
Kyselejsyreček

91

Bunun işe yaradığını buldum.

$(document).ready(function() {
    $( "form" ).submit(function () {
        // Get the submit button element
        var btn = $(this).find("input[type=submit]:focus" );
    });
}

12
bu çözüm Chrome'da iyi çalışır, ancak Safari'de çalışamaz, düğme nesnesi değil tanımsız olarak dönecektir
Bay Sun Lin

1
@Krinkle Mümkün olan en genel yolu göstermek için böyle kodladım. Bence geliştiriciler onu zevklerine göre optimize edecek kadar akıllılar.
Stan

Diğer çözümlerden daha temiz. Yine de enter tuşuna basarken çalışan bir çözüm bulamadık
andrewtweber

Bu cevap her zaman işe yaramayacaktır. Aslında odaklanmış değil, tıklanan düğmeye ihtiyacınız vardır (odaklama eylemi bir tıklama eylemi olmadığından). Seçilen cevap (avcının) doğru cevaptır.
Vasil Popov

Düğmeleri gönderme ve formlarında olaylar gönderme bir tıklama olay var ... ikincisi eski tetikler. Bunu olayın kaynağını bulmak için kullandım. Bazı tarayıcılarda düğmeyi tıklattığınızda düğmeyi odaklanmış olarak alırsınız, bazılarında hiçbir şey almazsınız. Test ettiğim tüm tarayıcılarda, bir girişteyken enter tuşuna basmak girişi odakta tutar.
notacouch

65

Bu benim için çalışıyor:

$("form").submit(function() {
   // Print the value of the button that was clicked
   console.log($(document.activeElement).val());
}

3
Bu yardımcı oldu, almak için id, activeElementyaptım$(document.activeElement).attr('id');
Mikolaj

9
Değeri için, kimliği almak için jQuery kullanmanıza gerek yok - saf Javascript kullanmak daha da basit:document.activeElement.id
Nick F

5
Bunun Safari'de beklendiği gibi çalışmadığını unutmayın. :(
rinogo

@rinogo: Safari'de ne olur?
Crescent Fresh

1
Safari'de document.activeElementgirdi değildir. Benim durumumda (formu içeren) kalıcı bir div.
mgalgs

46

Form gönderildiğinde:

  • document.activeElement size tıklanan gönder düğmesini verecektir.

  • document.activeElement.getAttribute('value') size bu düğmenin değerini verecektir.


2
Bunun Safari'de beklendiği gibi çalışmadığını unutmayın. :(
rinogo

Safari hakkında nasıl bilmiyorum ama Chrome'da iyi çalıştı :) Teşekkürler!
Ingus

Chrome 63 ve IE11'de çalışır
Sir Crispalot

Çalışmakta olan jquery mütevazi doğrulama vardı ve bu daha önce keser ve geçersiz girdi yerine düğme activeElement olarak ayarlar.
Peheje

28

İşte benim amacım için daha temiz görünen yaklaşım.

İlk olarak, her türlü form için:

$('form').click(function(event) {
  $(this).data('clicked',$(event.target))
});

Bir form için bu tıklama olayı tetiklendiğinde, daha sonra erişilecek kaynak hedefi (olay nesnesinde kullanılabilir) kaydeder. Bu, formun herhangi bir yerinde herhangi bir tıklama için tetikleneceğinden oldukça geniş bir kontur. Optimizasyon yorumları açıktır, ancak bunun asla gözle görülür sorunlara neden olmayacağından şüpheleniyorum.

Ardından, $('form').submit()en son ne tıklandığını,

if ($(this).data('clicked').is('[name=no_ajax]')) xhr.abort();

Bu, tıklama yerine bir form gönderme etkinliği ise ne olur?
Tony

1
@Tony, üzgünüm sorunuzu daha önce görmedim. Bu cevap tamamen sunumlar ile ilgilidir. Gönder düğmeleri de tıklanır ve böylece tıklama etkinliğini tetikler.
Jonathan Camenisch

2
Formun gönderdiği etkinlikler herhangi bir alt öğe tıklama etkinliğinden önce tetiklendiğinden bu cevabı avcının yanıtı üzerinden onaylayın . Bu, formunuzun gönderme olayı iptal edildiğinde zorluklara neden return falseolurken, tıklama, alt öğe yerine forma bağlı olduğu için bu yöntem düzgün çalışır.
pospi

7
Bu, formun bir tıklama dışında bir yolla gönderildiği durumu (örn. Enter tuşuna basarak) düzgün şekilde işleyemez. Form başka yollarla gönderildiğinde, son tıklanan değil, gönderme olayını tetikleyen ilk gönderme düğmesidir.
quietmint

Sonra noktalı virgül var, ... $(event.target))ancak düzenlemeler 6 karakterden fazla olması gerektiğinden düzenlenemiyor
Hafenkranich

13

Vay, bazı çözümler karmaşıklaşabilir! Basit bir global kullanmayı düşünmüyorsanız, önce giriş düğmesi tıklama etkinliğinin ilk önce gerçekleşmesinden yararlanın. Ayrıca $ ('# myForm input') kullanarak birçok formdan biri için $ ('input') seçicisine filtre uygulanabilir.

    $(document).ready(function(){
      var clkBtn = "";
      $('input[type="submit"]').click(function(evt) {
        clkBtn = evt.target.id;
      });

      $("#myForm").submit(function(evt) {
        var btnID = clkBtn;
        alert("form submitted; button id=" + btnID);
      });
    });

12

En iyi çözümü buldum

$(document.activeElement).attr('id')

Bu sadece girişlerde değil, aynı zamanda düğme etiketlerinde de çalışır. Ayrıca düğmenin kimliğini alır.


Lanet olsun, sayfamın Safari'de çalışıp çalışmadığını görmek zorundayım doh. Safari neden her zaman bu kadar zor olmak zorunda? Bunun için teşekkürler. Eve gittiğimde kontrol edeceğim
Thomas Williams


Safari'de bu benim için çalışmıyor. Gövdedeki bir Düğme üzerindeki dinleyiciyi tıklayın. $(document.activeElement).attr('id')undefined
Gönderme

7

Başka bir olası çözüm, formunuza gizli bir alan eklemektir:

<input type="hidden" id="btaction"/>

Ardından hazır fonksiyonunda, hangi tuşa basıldığını kaydetmek için fonksiyonlar ekleyin:

$('form#myForm #btnSubmit').click(function() {
    $('form#myForm #btaction').val(0);
});

$('form#myForm #btnSubmitAndSend').click(function() {
    $('form#myForm #btaction').val(1);
});

$('form#myForm #btnDelete').click(function() {
    $('form#myForm #btaction').val(2);
});

Şimdi form gönderme işleyicisinde gizli değişkeni okuyun ve buna göre karar verin:

var act = $('form#myForm #btaction').val();

6

Stan ve yann-h'nin yaptıklarına dayanarak, bu varsayılan olarak ilk düğmeye basar. Bu genel yaklaşımın güzelliği, hem tıklama hem de enter tuşunu almasıdır (odak düğme üzerinde olmasa bile. Forma girmek için izin vermeniz gerekiyorsa, sadece bir düğme odaklandığında buna yanıt verin ( Benim durumumda, kullanıcının mevcut odağı metin kutusunda olsa bile, formun gönderilmesine izin vermek istedim.

Ayrıca 'id' yerine 'name' özniteliğini kullanıyordum ama aynı yaklaşım bu.

var pressedButtonName =
     typeof $(":input[type=submit]:focus")[0] === "undefined" ?
     $(":input[type=submit]:first")[0].name :
     $(":input[type=submit]:focus")[0].name;

Bu yüzden odağı SEKME ile ikinci düğmeye taşırsanız ve RETURN tuşuna basarsanız, varsayılan olarak ilk düğme olur ...
FrancescoMM

5

Bu benim için çalıştı

$('#Form').submit(function(){
var btn= $(this).find("input[type=submit]:focus").val();
alert('you have clicked '+ btn);

}

Bu madalyayı hak ediyor!
Martin Zvarík

4

Bir .click olayı eklememekle kastettiğiniz şey, bu olaylar için ayrı işleyiciler kullanmak istemiyorsanız, tüm tıklamaları (gönderimleri) tek bir işlevde işleyebilirsiniz:

$(document).ready(function(){
  $('input[type="submit"]').click( function(event){ process_form_submission(event); } );
});

function process_form_submission( event ) {
  event.preventDefault();
  //var target = $(event.target);
  var input = $(event.currentTarget);
  var which_button = event.currentTarget.value;
  var data = input.parents("form")[0].data.value;
//  var which_button = '?';       // <-- this is what I want to know
  alert( 'data: ' + data + ', button: ' + which_button );
}

fena fikir değil. Bu, sayfadaki herhangi bir sayıda form için işe yarar mı?
hawkexp

@hawk evet, olmalı. Bu istenen davranış olup olmadığını bilmiyorum, ama kod aslında formu göndermiyor, bu yüzden benim de değil. Eğer göndermek istiyorsanız sadece kaldırın event.preventDefaultveya benzeri bir şey yapın input.parents("form")[0].submit().
jcane86

Ve bir tıklama olmadan gönderirseniz (dönüş tuşu?) Tam bir karmaşa olacaktır ..
FrancescoMM

4

Kabul edilen yanıta yorum yapamadığım için, formun dışındaki öğeleri dikkate alması gereken değiştirilmiş bir sürüm getiriyorum (yani: formözniteliği kullanarak forma eklenmiş ). Bu modern tarayıcı içindir: http://caniuse.com/#feat=form-attribute . closest('form') Desteklenmeyen için son çare olarak kullanılır formözniteliği

$(document).on('click', '[type=submit]', function() {
    var form = $(this).prop('form') || $(this).closest('form')[0];
    $(form.elements).filter('[type=submit]').removeAttr('clicked')
    $(this).attr('clicked', true);
});

$('form').on('submit', function() {
    var submitter = $(this.elements).filter('[clicked]');
})

Bu gerçekten seçilen cevap olmalı. Sadece kuralın olması gerektiğini ekleyeceğim"button,[type=submit]"
Wil

@ Tüm düğmeler gönderme düğmeleri olmasa da, türlerine bağlıdır.
ptyskju

Evet, ancak bir <giriş türü = "gönder">] olmadığında, şimdiye kadar kullandığım her UA, form gönderme tetikleyicisi olarak bir <düğmesi> etiketi işlemiştir, bu nedenle bu durum yakalanır. Ya da yazar, gönderme yeteneğine sahip tüm öğelerin [type = gönderme] özelliklerine sahip olması gerektiğini bildiren bir uyarı ekleyebilir.
Wil

3
$("form input[type=submit]").click(function() {
    $("<input />")
        .attr('type', 'hidden')
        .attr('name', $(this).attr('name'))
        .attr('value', $(this).attr('value'))
    .appendTo(this)
});

gizli alan ekle


Firefox 30 / Windows 7'de çalışmaz. Not: Gönderme olayında jquery: this.submit () ile gönderilirse tıklanan gönderme değerini göndermeyebileceğinden, artık firefox'ta gizli bir alan gereklidir. Birazcık $ (this) .attr ('name') 'nin tüm tarayıcılarda çalışmayabileceği konusunda biraz endişeliyim.
user1610743

Firefox 30 / Windows 7 sahibim. Her şeyim kusursuz çalışıyor.
anydasa

Eklemeyi unutmayın button[type=submit]ve input[type=image].
rybo111

3

Benim için en iyi çözümler şuydu:

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

   // Get the button that was clicked       
   var submit = $(this.id).context.activeElement;

   // You can get its name like this
   alert(submit.name)

   // You can get its attributes like this too
   alert($(submit).attr('class'))

});

3

Bu mükemmel yanıtla çalışarak , etkin öğeyi (düğme) kontrol edebilir, forma gizli bir girdi ekleyebilir ve isteğe bağlı olarak gönderme işleyicisinin sonunda kaldırabilirsiniz.

$('form.form-js').submit(function(event){
    var frm = $(this);
    var btn = $(document.activeElement);
    if(
        btn.length &&
        frm.has(btn) &&
        btn.is('button[type="submit"], input[type="submit"], input[type="image"]') &&
        btn.is('[name]')
    ){
        frm.append('<input type="hidden" id="form-js-temp" name="' + btn.attr('name') + '" value="' + btn.val() + '">');
    }

    // Handle the form submit here

    $('#form-js-temp').remove();
});

Yan not: Sınıfı şahsen form-jsJavaScript aracılığıyla gönderilen tüm formlara ekliyorum .


2

Stan yanıtı benzer ancak:

  • birden fazla düğmeniz varsa, yalnızca ilk düğmeyi almanız gerekir => [0]
  • form enter anahtarıyla gönderilebiliyorsa, varsayılan bir => myDefaultButtonId yönetmeniz gerekir

$(document).on('submit', function(event) {
    event.preventDefault();
    var pressedButtonId = 
         typeof $(":input[type=submit]:focus")[0] === "undefined" ? 
         "myDefaultButtonId" :
         $(":input[type=submit]:focus")[0].id;
    ...
 }

2

Bu benim kullandığım çözüm ve çok iyi çalışıyor:

// prevent enter key on some elements to prevent to submit the form
function stopRKey(evt) {
  evt = (evt) ? evt : ((event) ? event : null);
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
  var alloved_enter_on_type = ['textarea'];
  if ((evt.keyCode == 13) && ((node.id == "") || ($.inArray(node.type, alloved_enter_on_type) < 0))) {
    return false;
  }
}

$(document).ready(function() {
  document.onkeypress = stopRKey;
  // catch the id of submit button and store-it to the form
  $("form").each(function() {
    var that = $(this);

    // define context and reference
    /* for each of the submit-inputs - in each of the forms on
			 the page - assign click and keypress event */
    $("input:submit,button", that).bind("click keypress", function(e) {
      // store the id of the submit-input on it's enclosing form
      that.data("callerid", this.id);
    });
  });

  $("#form1").submit(function(e) {
    var origin_id = $(e.target).data("callerid");
    alert(origin_id);
    e.preventDefault();

  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form id="form1" name="form1" action="" method="post">
  <input type="text" name="text1" />
  <input type="submit" id="button1" value="Submit1" name="button1" />
  <button type="submit" id="button2" name="button2">
    Submit2
  </button>
  <input type="submit" id="button3" value="Submit3" name="button3" />
</form>



1

İşte benim çözümüm:

   $('#form').submit(function(e){   
        console.log($('#'+e.originalEvent.submitter.id));
        e.preventDefault();
    });

0

Ben de bir çözüm yaptım ve gayet iyi çalışıyor:
jQuery ve CSS kullanıyor


İlk olarak, hızlı bir CSS sınıfı yaptım, bu gömülebilir veya ayrı bir dosyada olabilir.

<style type='text/css'>
    .Clicked {
        /*No Attributes*/
    }
</style>


Ardından, formdaki bir düğmenin click olayında, CSS sınıfını düğmeye ekleyin. Düğmede zaten CSS sınıfı varsa kaldırın. (İki CSS sınıfı istemiyoruz [Her ihtimale karşı]).

    // Adds a CSS Class to the Button That Has Been Clicked.
    $("form :input[type='submit']").click(function () 
    {
        if ($(this).hasClass("Clicked"))
        {
            $(this).removeClass("Clicked");
        }
        $(this).addClass("Clicked");
    });


Şimdi, test edilen düğmenin CSS'si yoksa, CSS sınıfına sahip olduğunu görmek için düğmeyi test edin, sonra diğer düğme olacaktır.

    // On Form Submit
    $("form").submit(function ()
    {
        // Test Which Button Has the Class
        if ($("input[name='name1']").hasClass("Clicked"))
        {
            // Button 'name1' has been clicked.
        }
        else
        {
           // Button 'name2' has been clicked.
        }
    });

Bu yardımcı olur umarım! Şerefe!


Eklemeyi unutmayın button[type=submit]ve input[type=image].
rybo111

Stil ve CSS referanslarını kaldırmalısınız - bunlar burada alakalı değildir. Ayrıca, kullandığınız hasClass()ve removeClass()gereksiz olan satırlar addClass(), aynı sınıfı iki kez eklemeyecektir.
rybo111

0

Bir düğme kimliği bilgisi için tutucu olarak input type = "hidden" oluşturabilirsiniz.

<input type="hidden" name="button" id="button">
<input type="submit" onClick="document.form_name.button.value = 1;" value="Do something" name="do_something">

Bu durumda form gönderildiğinde "1" değerini (düğmenizin kimliği) iletir. Bu onClick gönderilmeden (?) Önce gerçekleşirse çalışır, her zaman doğru olup olmadığından emin değilim.


0

Hangi <düğmesine> veya <giriş türü = "düğmesine" ...> basıldığını ayırt etmenin basit bir yolu 'kimliklerini' kontrol etmektir:

$("button").click(function() {
  var id = $(this).attr('id');
  ... 
});

0

Burada, gönderimin içine alındığı doğru formu almak için this.form'u ve son tıklanan / odaklanan öğeyi depolamak için veri alanlarını kullanan bir örnek verilmiştir. Ayrıca, tıklama etkinliklerinin yürütülmeden önce gerçekleştiğinden emin olmak için gönderme kodunu bir zaman aşımı içine tamamladım (bazı kullanıcılar Chrome'da bazen bir gönderildikten sonra bir tıklama etkinliğinin tetiklendiğini bildirdi).

RETURN anahtarında bir tıklama olayı göndermek için tarayıcılara güvenmeden hem tuşlarla hem de fare / parmaklarla gezinirken çalışır (yine de incinmez), düğmeler ve alanlar için odak olayları için bir olay işleyici ekledim.

Tıklandığında kendilerini koruyan öğelere type = "gönder" düğmeleri ekleyebilirsiniz.

Demoda, seçilen öğeyi göstermek için kırmızı bir kenarlık ve ad ile değer / etiket gösteren bir uyarı ayarladım.

İşte FIDDLE

Ve işte (aynı) kod:

JavaScript:

$("form").submit(function(e) {
  e.preventDefault();
  // Use this for rare/buggy cases when click event is sent after submit
  setTimeout(function() {

    var $this=$(this);
    var lastFocus = $this.data("lastFocus");
    var $defaultSubmit=null;

    if(lastFocus) $defaultSubmit=$(lastFocus);

    if(!$defaultSubmit || !$defaultSubmit.is("input[type=submit]")) {
      // If for some reason we don't have a submit, find one (the first)
      $defaultSubmit=$(this).find("input[type=submit]").first();
    }

    if($defaultSubmit) {
      var submitName=$defaultSubmit.attr("name");
      var submitLabel=$defaultSubmit.val();

       // Just a demo, set hilite and alert
      doSomethingWith($defaultSubmit);
      setTimeout(function() {alert("Submitted "+submitName+": '"+submitLabel+"'")},1000);
    } else {
      // There were no submit in the form
    }

  }.bind(this),0);

});

$("form input").focus(function() {
  $(this.form).data("lastFocus", this);
});
$("form input").click(function() {
  $(this.form).data("lastFocus", this);
});

// Just a demo, setting hilite
function doSomethingWith($aSelectedEl) {
  $aSelectedEl.css({"border":"4px solid red"});
  setTimeout(function() { $aSelectedEl.removeAttr("style"); },1000);
}

DUMMY HTML:

<form>
<input type="text" name="testtextortexttest" value="Whatever you write, sir."/>
<input type="text" name="moretesttextormoretexttest" value="Whatever you write, again, sir."/>

<input type="submit" name="test1" value="Action 1"/>
<input type="submit" name="test2" value="Action 2"/>
<input type="submit" name="test3" value="Action 3"/>
<input type="submit" name="test4" value="Action 4"/>
<input type="submit" name="test5" value="Action 5"/>
</form>

DUMB CSS:

input {display:block}

0

Bana yardımcı olan bu işlevi yazıyorum

var PupulateFormData= function (elem) {
var arr = {};
$(elem).find("input[name],select[name],button[name]:focus,input[type='submit']:focus").each(function () {
    arr[$(this).attr("name")] = $(this).val();
});
return arr;
};

ve sonra Kullan

var data= PupulateFormData($("form"));

0
$('form').submit(function (ev) {
  let clickedButton = ev.originalEvent.explicitOriginalTarget;
});

-1

Window.event.srcElement.id dosyasını şu şekilde kullanmak istiyorsunuz :

function clickTheButton() {

var Sender = window.event.srcElement;
alert("the item clicked was " + Sender.id)

}

şuna benzeyen bir düğme için:

<input type="button" id="myButton" onclick="clickTheButton();" value="Click Me"/>

şöyle bir uyarı alırsınız: "tıklanan öğe myButton'du.

Geliştirilmiş örneğinizde process_form_submission'a window.event.srcElement öğesini ekleyebilir ve hangi öğenin işlemi başlattığına ilişkin bir referansınız olur.


1
onclick'i öğeler için kullanmayın, kullanımdan kaldırıldı
Krzysztof Cygan

1
Bu, gönderme düğmeleri için çalışmıyor gibi görünüyor, window.event.srcElement formun kimliğini döndürüyor.
333Mhz

@KrzysztofCygan Bunun herhangi bir kaynağı var mı?
vard
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.