12
votes

Comment désactiver l'action de soumission

Bonjour, j'ai cette forme que je ne veux pas utiliser une action lorsque le bouton Soumettre est cliqué. Tout ce que je veux faire, c'est exécuter la fonction une fonction chargant des données dans un div. Des idées ??

<form  method="POST"   action="" id="search-form">
          <input type="text" name="keywords"  />
          <input type="submit" value="Search" id="sButton" onclick="loadXMLDoc('file.xml')" />
</form>


1 commentaires

Avez-vous essayé Ajax en utilisant jQuery?


3 Réponses :


12
votes
<script>
    $(function() { 
        $("#search-form").submit(function() { 
            $("div").load("file.xml");
            return false;
        });
    });
</script>

7 commentaires

Est e.preventDefault () meilleur ou retour false mieux dans ce cas?


retour false est meilleur car il empêche le comportement par défaut de l'événement et aussi empêche la page de bulletinement. Notez que cela n'est correct que dans les gestionnaires d'événements JQuery.


@Alon Gubkin-Que voulez-vous dire par "... ce n'est que correct dans les gestionnaires d'événements jQuery"? Utilisation de Retour False à partir d'un écouteur Soumettre sera annuler Soumettre si vous utilisez JQuery ou non.


@ROBG Mais il n'annulera pas la page de bulletin de fabrication de gestionnaires d'événements non-JQuery.


@ Funndukkin-je présume que vous parlez de la bulle de l'événement. Étant donné que l'événement de soumission dans la plupart des navigateurs ne bulle pas de toute façon, ces formulaires ne peuvent pas être imbriqués, de sorte que la soumission d'une bulle à une autre et que mettre un auditeur de soumission sur un autre élément n'a pas beaucoup de sens, précisément quel problème » "L'arrêt du bulletin de bulletin est-il en train de résoudre l'empreinte de 100 Ko de bibliothèque minifose pour faire ce qui peut être fait en deux mots de code?


@ Robg-i seulement dit à @Derek que dans jQuery renvoie false empêche automatiquement le bouillonnement d'événement. Je n'ai pas suggèrent y compris JQuery, juste pour éviter que l'événement soit bouillonnant lorsqu'il est possible avec event.stoppropagation .


Une réponse plus correcte serait. retour false ne fonctionne que sur jQuery. PreventDefault serait la bonne réponse. Si vous ne voulez pas que ce soit à bulles, StopPropagation est le moyen qui ne concerne aucune question.



3
votes

Je pense que vous avez besoin de fonction AJAX pour charger des données avec dans div code> sans rechargement de page

modifier le type d'entrée Soumettre code> à code> code> P>

<script type="text/javascript">
    function AjaxSend(){
         $.get('file.xml', function(data) {
              $('div').html(data);
          });
     }
</script>


1 commentaires

Vous voulez dire oncclick = "JavaScript: ajaxsend ()" ... Je me demande si ça marche partout maintenant. Il devrait, btw.



1
votes

Utilisez Empêcher les valeurs par défaut d'éviter les actions de formulaire.Veuillez référencer le code ci-dessous, il pourrait vous aider

p>

<form>

<input type="text"/>
<input type="submit" onclick="createRecord()"/>

</form>


0 commentaires