Comment vérifier la valeur de retour de la fonction si vrai ou faux
J'ai une fonction ici de valider les champs dans un formulaire s'ils sont vides.
function ValidateForm()
{
jQuery('span.error_msg').hide();
var success = true;
jQuery("#shippingF input").each(function()
{
if(jQuery(this).val()=="")
{
jQuery(this).next().show();
success = false;
}
});
return success;
}
Maintenant, je voulais utiliser cette fonction ici:
function post(url,formId) {
jQuery("#process").html('<img src="<?php echo get_bloginfo('wpurl').'/wp-content/plugins/'.basename(dirname(__FILE__)).'/images/co/ajax-loader.gif'; ?>" alt="loading" title="ajax-loader" width="16" height="16" class="alignnone size-full wp-image-134">');
jQuery.post(url, jQuery('#' + formId).serialize(), function(d) {
jQuery('html,body').animate({scrollTop: jQuery("#scrollhere").offset().top},'slow');
jQuery("#response").html('<center><p style="height:820px"><span style="color:black;font-weight:bold;font: 11px arial,verdana,sans-serif;"><b>Loading available payment getaways..</b></span><br/><img src="<?php echo get_bloginfo('wpurl').'/wp-content/plugins/'.basename(dirname(__FILE__)).'/images/co/8-1.gif'; ?>" width="220" height="19" /></p></center>');
jQuery("#response").load("<?php echo get_bloginfo('wpurl').'/wp-content/plugins/'.basename(dirname(__FILE__)).'/checkout_payment.php'; ?>", function() { Cufon.refresh(); });
jQuery("#response").attr("style","height:1030px");
});
}
Je l'ai essayé et je viens avec cela.
function post(url,formId) {
ValidateForm();
if(ValidateForm() == 'false') {
jQuery('html,body').animate({scrollTop: jQuery("#shippingF").offset().top},'slow');
} else {
jQuery("#process").html('<img src="<?php echo get_bloginfo('wpurl').'/wp-content/plugins/'.basename(dirname(__FILE__)).'/images/co/ajax-loader.gif'; ?>" alt="loading" title="ajax-loader" width="16" height="16" class="alignnone size-full wp-image-134">');
jQuery.post(url, jQuery('#' + formId).serialize(), function(d) {
jQuery('html,body').animate({scrollTop: jQuery("#scrollhere").offset().top},'slow');
jQuery("#response").html('<center><p style="height:820px"><span style="color:black;font-weight:bold;font: 11px arial,verdana,sans-serif;"><b>Loading available payment getaways..</b></span><br/><img src="<?php echo get_bloginfo('wpurl').'/wp-content/plugins/'.basename(dirname(__FILE__)).'/images/co/8-1.gif'; ?>" width="220" height="19" /></p></center>');
jQuery("#response").load("<?php echo get_bloginfo('wpurl').'/wp-content/plugins/'.basename(dirname(__FILE__)).'/checkout_payment.php'; ?>", function() { Cufon.refresh(); });
jQuery("#response").attr("style","height:1030px");
});
}
}
Le problème est que, la validation est de travailler.. cependant, .post()
fonction s'exécute même si il ya un champ vide. Je suppose que c'est sur si/d'autre condition.. est-il une meilleure façon d'accomplir cette?
Merci.
source d'informationauteur Ken
Vous devez vous connecter pour publier un commentaire.
Pour de bonnes mesures, mettre le résultat de valider dans une variable pour éviter la double validation et de l'utiliser dans l'instruction if. Comme ceci:
Vous n'avez pas besoin d'appeler
ValidateForm()
deux fois, que vous êtes au-dessus. Il vous suffit de faireJe pense que cela va résoudre le problème que ci-dessus, il ressemble au votre, comparaison de
true/false
à l'équivalent de chaîne'false'
.vous êtes à comparer le résultat à une chaîne de caractères ("faux") le négatif constant (faux)
suffit d'utiliser
ou mieux encore
aussi pourquoi faites-vous appel à validateForm deux fois?
Mauvaise syntaxe. On ne peut pas comparer un Booléen chaîne comme "faux" ou "vrai". Dans votre cas, il suffit de tester l'inverse:
Vous pourrait test contre la constante faux, mais c'est assez laid et généralement mal vu:
ValidateForm
retourneboolean
,pas unstring
.Lorsque vous faites cela
if(ValidateForm() == 'false')
, est la même que celle deif(false == 'false')
, ce qui n'est pas vrai.