Valider la saisie de texte dans le bootstrap modal
Je veux valider un formulaire dans une modal bootstrap sans l'aide de n'importe quel cadre. Il est en fait simple modal avec seulement une entrée de texte et deux boutons "Fermer" et "Envoyer".
L'utilisateur doit saisir son nom dans la zone de saisie et cliquez sur envoyer. Le formulaire est envoyé avec la méthode post.
Ce que je veux faire, c'est que, si l'utilisateur ne rien saisir dans la zone de saisie de et clique sur le bouton "Envoyer", la zone d'entrée doit avoir une bordure rouge encerclant la place de la valeur par défaut bordure bleue. Voici le code de mon modal:
<div id="myModal" class="modal fade" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<!--form-->
<form class = "form-horizontal" id="myForm" method="post" action="test.php" role="form">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">My modal</h4>
</div>
<div class="modal-body">
<p>
Please enter your name:
</p>
<br/>
<div class="form-group">
<div class="col-lg-12">
<label class="control-label" for="firstname">Name</label>
<input type="text" class="form-control required" id="firstname" name="firstname">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button id="myFormSubmit" class="btn btn-primary">Send</button>
</div>
</form>
</div>
</div>
</div>
J'ai essayé d'utiliser javascript pour modifier la classe de la saisie de texte à has-error
mais cela ne produit pas le contour rouge. Quand je clique sur envoyer il envoie la valeur vide par la méthode post au lieu de
Voici mon code javascript:
<script type="text/javascript">
$('#myForm').validate({
rules: {
name: {
minlength: 1,
required: true
},
},
highlight: function (element) {
$('#firstname').removeClass('has-success').addClass('has-error');
},
success: function (element) {
$('#firstname').removeClass('has-error').addClass('has-success');
}
});
</script>
Je crois que je suis un mélange de tout un tas de choses ici. Je suis encore nouveau pour l'amorçage et le javascript. Comment puis-je obtenir le désiré contour rouge?
Merci.
Edit:
Valider la fonction:
function validate() {
var x = document.forms["myForm"]["firstname"].value;
if (x == null || x == "") {
return false;
}
}
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de changer la
CSS
classes de lainput
parent élémentdiv.form-group
, pas leinput
lui-même:La
HTML
après le bouton soumettre, cliquez sur devrait ressembler à ceci:Pour atteindre cet objectif, modifier votre
JavaScript
code à ceci:HTML
code juste pour vous montrer où dans leDOM
devrait lehas-error
classe CSS stand. Vous avez besoin seulement le JavaScript le HTML. L'état initial de ne devrait pas avoir lehas-error
classe..validate()
la fonction pour laquelle vous postulez à la forme.validate()
n'accepte pas de paramètres... si vous avez besoin d'un enfer de beaucoup de code que juste la vérification de la valeur du champ. Je vais mettre à jour ma réponse avec une validation appropriée en utilisant uniquement jQuery.<script src="http://code.jquery.com/jquery.min.js"></script>
juste en dessous du code javascript de votre écrit. Je suppose qu'il doit être appelée avant. Mais je pense que quand les pages se chargent de tous les codes javascript exécuter indépendamment de l'endroit où vous les placez. Je suppose que je me trompais. Au moins je n'aurais jamais oublier mon erreur. Merci! 🙂div dans amorçage...
comme vous le voyez, il est .aide-block display: none maintenant vous écrire du code javascript de la fonction et vérifier la validation et si la validation maintenant passer à la rendre display: block ... c'est la façon dont vous pouvez faire
profiter au démarrage avec la sangle 🙂
il est très facile
il suffit d'appliquer de la classe .a-erreur de div en fonction javascript
Suffit d'utiliser requis à l'intérieur du champ de saisie comme ce