2009-11-06 7 views
0

J'ai un formulaire HTML défini commesoumettre le formulaire avec lien tout en vérifiant les valeurs

<form name="writeYourAd" id="writeYourAd" method="post" action="post.php?action=preview" onsubmit="return checkContentForm(this);" enctype="multipart/form-data"> 

Si j'utilise un, cela fonctionne très bien. Mais si au contraire j'utiliser ceci:

<a href="#" class="mmh_orngebtn mmh_grybtn" onclick="javascript:document.writeYourAd.submit();"><span>continue</span></a> 

Il soumet le formulaire, mais ne fonctionne pas la fonction checkContentForm (ou du moins il me laisse passer de toute façon).

Pourquoi? Que puis-je faire?

Répondre

1

Je pense que vous devez pointer le gestionnaire onclick à votre fonction checkContentForm.

Ou écrivez votre propre fonction de soumission qui comprend l'appel de checkContentForm et soumet ensuite.

1

essayer d'ajouter la fonction au bouton d'envoi comme un événement onclick

+0

assurez-vous que vous renvoyez false si des erreurs apparaissent pour ne pas les soumettre – Kevin

0

Vous devez appeler manuellement le form.onsubmit(), puis l'enlever (dans le cas où certains navigateurs l'appellent au submit() appel, car c'est ce qu'ils devraient faire par spec, mais la plupart d'entre eux ne le font pas), alors appelez form.submit ()

Jetez aussi un coup d'œil à this thread

0

il ira à votre page post.php avant qu'il effectuera la fonction onsubmit

essayer de rester sur la même page et inclure dans l'utilisation que vous post.php

comme

if ($_POST[submit]){ 
include "post.php"; 
echo "<script>return checkContentForm(document.writeYourAd);</script>"; 
} 

ou vous pouvez supprimer l'action, puis envoyez votre message avant ou après la fonction checkContentForm() à l'aide ajax

<form name="writeYourAd" id="writeYourAd" method="post" action="" onsubmit="return SendQuery(this);" enctype="multipart/form-data"> 

JavaScript:

function SendQuery(myForm) 
{ 
xmlhttp=GetXmlHttpObject(); 
if (xmlhttp==null) 
    { 
    alert ("Browser does not support HTTP Request"); 
    return; 
    } 

var url="post.php"; 
url=url+"?action=preview"; 
thisForm = myForm; 
xmlhttp.onreadystatechange=stateChanged; 
xmlhttp.open("GET",url,true); 
xmlhttp.send(null); 
} 

function stateChanged(){ 
    if (xmlhttp.readyState==4){ 
     if (xmlhttp.status == 200){ 
      return checkContentForm(thisForm); 
     } 
    } 
} 

function GetXmlHttpObject() 
{ 
if (window.XMLHttpRequest) 
    { 
    // code for IE7+, Firefox, Chrome, Opera, Safari 
    return new XMLHttpRequest(); 
    } 
if (window.ActiveXObject) 
    { 
    // code for IE6, IE5 
    return new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
return null; 
} 

Juste Vérifier quelques erreurs.

Questions connexes