2010-04-23 5 views
0

Je dois faire en sorte que cette erreur apparaisse si l'utilisateur essaie de quitter la page sans cocher cette case. Il n'a pas d'autre usage que visuel, y a-t-il un moyen de mettre en œuvre une telle chose?Checkbox show error

<span> 
     <input value="1" type="checkbox" name="salgsvilkar" ID="checkbox2" style="float:left;" 
     onclick="document.getElementById('scrollwrap').style.cssText=' 
border-color:#85c222; 
background-color:#E5F7C7;';" /> 
<label for="checkbox2" class="akslabel"> 
Salgs og leveringsvilkår er lest og akseptert 
</label> 
    </span> 

Le CSS joint est juste pour le style, aucun point l'affichant.

J'ai essayé:

{literal} 
      <script type="text/javascript"> 
if ($("#checkbox2").val()==1){ 
    alert('Please accept the terms of sale'); 
    //or you can use other method of showing the error. lightbox? showing error msg on a span, etc. 
} 

</script> 
    {/literal} 

INSCRIT dans le balisage juste avant la case à cocher, mais il ne veut pas travailler.

MISE À JOUR:

De plus les réponses données, voici le formulaire soumettre le code ..

{form action="controller=checkout action=payOffline query=id=$method" handle=$offlineForms[$method] method="POST"} 
     {include file="block/eav/fields.tpl" fieldList=$offlineVars[$method].specFieldList} 
     <div id="handel_fortsett_btns"> 

     <p class="submit"> 




    <a href="{link route=$return}" class="continueShopping" title="Fortsett å handle"><span><span><span><span>&nbsp;</span></span></span></span></a> 

     <input type="hidden" name="step" value="{$step}" /> 
     <label></label> 
     <button type="submit" class="submit" name="{$method}" id="fullfor_btn" title="Fullfør bestillingen nå" value="">&nbsp;</button> 
    </p> 

    </div> 


    {/form} 

Merci.

Répondre

1

Oui. utiliser jquery.

$(document).ready(function() {  

//this should capture your submit button click event and the return false will stop the submission. 
$("#fullfor_btn").click(function(){ 
    if ($("#checkbox2").val()==1){ 
     alert('your error msg'); 
     //or you can use other method of showing the error. lightbox? showing error msg on a span, etc. 
     return false; //or use other method to stop your form from submitting. 
    } 
}); 

)}; 

et voici un peu de tutorial to get you started, ne vous inquiétez pas si vous ne savez pas quoi utiliser dans un premier temps. Il suffit d'apprendre le sélecteur et de progresser lentement. ce sera un investissement intéressant :)

et comment soumettez-vous le formulaire maintenant? S'il s'agit d'un bouton de soumission, vous pouvez utiliser jquery pour ajouter l'événement click au bouton de soumission et renvoyer false lorsque vous ne souhaitez pas que le bouton soit soumis.

+0

Merci, j'ai du mal à le faire fonctionner, je vais mettre à jour ma question. – Kyle

+0

Comment puis-je ajouter l'événement click? Merci pour les ressources, je vais continuer à apprendre jQuery, il est temps. – Kyle

+0

Utilisez simplement $ ("# buttonid"). Click (function() {// codes supplémentaires ici}); google si vous avez besoin de plus d'informations. – melaos

1

[ "Salgs og leveringsvilkår er peur og akseptert" (suédois? Norvégien?) Est sur le point d'accepter les termes et conditions.]

J'espère que ce n'est pas seulement pour l'affichage. Vous devez également vérifier côté serveur que l'utilisateur a accepté vos termes. Pour effectuer une vérification de formulaire côté client, vous devez utiliser JS pour remplacer l'action du bouton d'envoi, vérifier les données (comme le montre melaos, bien que jQuery ne soit pas nécessaire) et afficher les commentaires en regard de chaque élément de formulaire. Un peu de douleur vraiment. Vous devez également le valider de nouveau côté serveur si JS est accidentellement (ou pas) désactivé.

+0

Dette er Norsk;) et oui, je voudrais l'ajouter au bouton soumettre le formulaire, mais le système que la société a acheté est un peu instable et n'est pas très convivial, il y a environ 100 boutons de soumission en fonction du processus de paiement choisi par l'utilisateur. Je pensais que ce serait bien comme une solution rapide pour l'instant. – Kyle