2012-04-30 15 views
7

Hola tengo este formulario que no quiero realizar una acción cuando se hace clic en el botón Enviar. Todo lo que quiero hacer es realizar una función que carga datos en un div. ¿¿Algunas ideas??Cómo deshabilitar la acción de envío

<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

has probado ajax using jquery? –

Respuesta

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

o incluso mejor:

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

Para implementar loadXMLDoc, puede utilizar el módulo de ajax de jQuery. por ejemplo:

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

código final usando jQuery:

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

Es 'e.preventDefault()' better o 'return false' mejor en este caso? –

+0

'return false' es mejor porque evita el comportamiento predeterminado del evento ** y también ** evita que la página burbujee. Tenga en cuenta que esto solo es correcto en los manejadores de eventos jQuery. –

+0

Veo ... –

2

Creo que se necesita la función ajax para cargar datos con en div sin recarga de la página

Cambiar tipo de entrada submit a 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

Quieres decir onclick = "javascript: AjaxSend()" ... Me pregunto si funciona en todos lados ahora. Debería, por cierto. – dkellner

+0

sí, funcionará ... – Dhamu

+0

Me funcionó en Chrome, de todos modos. – dkellner

Cuestiones relacionadas