</script> </head> "> </script> </head> "> </script> </head> " />

deze input verzend selector met het dichtstbijzijnde formulier submit

Ik heb een probleem met de onderstaande code. Ik weet niet zeker waarom deze selector niet werkt, als ik klik om het in te dienen werkt het niet. Heeft iemand enig idee wat een goede manier zou zijn zonder id of klasse-selector te gebruiken?

<!DOCTYPE HTML>

    <head>
        <script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
    </head>
    <body>
        <script>
        $(this).closest('form').submit(function() {
           alert(1);
           return false;
        });
        </script>
        <form>
          <input type="text" name="example">
          <input type="submit" class="searchBtn">
        </form>
    </body>
</html>

Terwijl GDORON me vroeg wat ik probeerde te doen, plaats ik hier de volledige code, samen met de Sudhir-oplossing, als iemand anders het nodig heeft. Dus ik probeer invoerwaarden te verzenden met Ajax bij verzenden, maar ik wil geen klasse- of id-selector gebruiken:

$("input[type='submit']").click(function() {
  $(this).closest('form').submit(function() {
        var values = $(this).serialize();          
        $.ajax({
          type: "POST",
          url: $(this).closest('form').attr('action'),
          data: values,
          success: function(msg){                              
              //saving done
              closeDialog(200);                            
          }           
        });     
        return false;           
  });
});
1
Vermelding van wat u probeert te doen kan echt helpen.
toegevoegd de auteur gdoron, de bron
wat is $ (dit)
toegevoegd de auteur user1432124, de bron

2 antwoord

proberen:

$(document).ready(function() {
  $("input[type='submit']").click(function() {
    $(this).closest('form').submit(function (evt) {
           //evt.preventDefault();
           alert(1);
           return false;
    });
  });
});
2
toegevoegd
Tnx, dit is waar ik naar op zoek ben, want ik kan een situatie hebben met meer dan één formulier. Dit zal ook in dergelijke gevallen werken.
toegevoegd de auteur JohnyFree, de bron
evt.preventDefault (); is overbodig omdat u uiteindelijk false retourneert.
toegevoegd de auteur gdoron, de bron
toegevoegd de auteur gdoron, de bron

Wijzig uw code:

$(this).closest('form').submit(function() {
           alert(1);
           return false;
        });

Naar:

$(function(){
    $('form').submit(function() {
        alert(1);
        return false;
    });
}):        

this in your code is the window, no anything inside the <form>.

1
toegevoegd