Göndermeden önce bir şey nasıl yapılır? [kapalı]


142

formu gönderen bir düğme olan bir form var. Göndermeden önce bir şeyler yapmam gerekiyor. Bu düğmeye onClick yapmayı denedim ama gönderdikten sonra olur.

Kodu paylaşamıyorum ama, genel olarak, bunu işlemek için jQuery veya JS ne yapmalıyım?


11
Öksürük jsFiddle Örnek öksürük
Brad Christie

2
@Brad Christie sadece bir cevap olarak yorumu kabul edebilirsem. Çok faydalı teşekkürler.
Jimmy

3
Stackover bir soruyu kapattığında nefret ediyorum. Bir form göndermeden hemen önce aşağıdaki zamanlamayı tetikleyen aşağıdaki olayları kullanarak eylemlerinizi gerçekleştirebilirsiniz: 1- onmouseover 2- onmousemove 3- onmousedown 4- onfocus 5- onmouseup 6- onclick 7- onsubmit
Shadi Namrouti

1
Bu soruyu takdir ediyorum, çünkü yakın zamanda aynı problemle karşılaştım ve bu soru tam olarak sormak istediğim şeydi.
wastetime909

2
komik bu soru kapalı çünkü gerçek bir soru değil: -?
AnnaKlein

Yanıtlar:


207

Böyle bir formunuz varsa:

<form id="myform">
...
</form>

Form gönderilmeden önce bir şeyler yapmak için aşağıdaki jQuery kodunu kullanabilirsiniz:

$('#myform').submit(function() {
    // DO STUFF...
    return true; // return false to cancel form action
});

2
Göndermeden önce tamamlanması gereken döngüler için bunu kullanırken sorun yaşıyorum. Baska öneri?
Smilyan

Bakmanız gereken herhangi bir kod var mı? Sorunu anladığımdan emin değilim.
Dan Breen

3
Bu neden boş bir işlev çağrısına sarıldı? Olmamalı submitişlevi doğrudan bağlanma mümkün $('#form')çevreleyen boş fonksiyonu olmadan? EDIT: dokümanlar çevreleyen işlev çağrısının gerekli olmadığını gösterir .
eykanal

@eykanal İyi bir nokta. Devam ettim ve kaldırıldığında iyi çalıştığını onayladıktan sonra işlev sarıcısını kaldırmak için cevabı düzenledim.
Jon Schneider

3
@eykanal "Boş" işlev çağrısını kullandım, çünkü jQuery'nin işlevi için bir kısayol $(document).ready(), bu submitolayı eklemeden önce DOM'un tamamlanmasını sağlar . JS'niz sayfanın altındaysa, gerekli değildir, ancak <head>bölümde bulunuyorsa buna ihtiyacınız vardır. Bkz. Stackoverflow.com/q/13062246/135108
Dan Breen

23

Bunun gibi bir formunuz olduğunu varsayarsak:

<form id="myForm" action="foo.php" method="post">
   <input type="text" value="" />
   <input type="submit" value="submit form" />

</form>

onsubmitJQuery ile böyle bir -event ekleyebilirsiniz :

$('#myForm').submit(function() {
  alert('Handler for .submit() called.');
  return false;
});

Eğer return falsetrue dönmek ya da hiçbir şey her zamanki gibi gönderilmesi durumunda form, fonksiyon sonra gönderilen edilmeyecektir.

Daha fazla bilgi için jQuery belgelerine bakın .


11

onclickFormu şu şekilde göndermeden önce bazı JavaScript veya jQuery kodlarını çalıştırmak için kullanabilirsiniz :

<script type="text/javascript">
    beforeSubmit = function(){
        if (1 == 1){
            //your before submit logic
        }        
        $("#formid").submit();            
    }
</script>
<input type="button" value="Click" onclick="beforeSubmit();" />

18
Ancak bu, form örneğin bir girdi alanı içerdiğinde, kullanıcı bir gönderme olayını başlatan dönüş tuşuna bastığında işe yaramaz. Kullanıcının gönderimi nasıl tetiklediğine bakılmaksızın çağrılmasını sağlayabilmeniz için genellikle doğrudan gönderme etkinliğine eklemek daha iyidir.
acme

2
<input type = "gönder" value = "" onmouseover = "düğmesini tıklayın beforeSubmit ();" />
Ansyori

5

Gönder düğmesinin "gönder" türünde olmadığından emin olun, düğmeyi yapın. Sonra bazı javascript'i tetiklemek için onclick olayını kullanın. Burada, verilerinizi göndermeden önce istediğinizi yapabilirsiniz.


3
Form, belirli alanlarda enter tuşuna basmak gibi çeşitli yollarla gönderilebilir. Tıklanamayan bir düğmeyi tıklatmak, iyi bir fikir değildir. Diğer cevaplar onsubmit, formu nasıl bağladığınızı gösterir , bu form nasıl gönderilirse gönderilsin.
Jason
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.