2012-04-30 4 views
7

Bonjour, j'ai ce formulaire que je ne veux pas exécuter lorsque vous cliquez sur le bouton Soumettre. Tout ce que je veux faire est d'exécuter une fonction qui charge les données dans un div. Des idées??Comment désactiver l'action de soumission

<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

avez-vous essayé ajax en utilisant jquery? –

Répondre

8
onclick="loadXMLDoc('file.xml'); return false;" 

ou mieux encore:

<script> 
    window.onload = function() { 
     document.getElementById("search-form").onsubmit = function() { 
      loadXMLDoc('file.xml'); 
      return false; 
     }; 
    }; 
</script> 

Pour mettre en œuvre loadXMLDoc, vous pouvez utiliser le module ajax jQuery. par exemple:

function loadXMLDoc() { 
    $("div").load("file.xml"); 
} 

code final en utilisant jQuery:

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

Est-ce que 'e.preventDefault()' est mieux ou 'return false' mieux dans ce cas? –

+0

'return false' est meilleur car il empêche le comportement par défaut de l'événement ** et empêche également la page de bouillonner. Notez que ceci n'est correct que dans les gestionnaires d'événements jQuery. –

+0

Je vois ... –

2

Je pense que vous avez besoin fonction ajax pour charger les données avec dans div sans rechargement de la page

type d'entrée Modifier submit à button

<input type="button" value="Search" id="sButton" onclick="AjaxSend()" /> 

Ajax CAll:

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

Vous voulez dire onclick = "javascript: AjaxSend()" ... Je me demande si cela fonctionne partout maintenant. Il devrait, btw. – dkellner

+0

oui ça va marcher ... – Dhamu

+0

Cela a fonctionné pour moi dans Chrome, de toute façon. – dkellner

Questions connexes