JQuery valider l'emplacement du message d'erreur personnalisé
Cela semble très simple, mais je ne peux pas le comprendre. J'utilise le jquery valider plugin. Je suis en train de valider <input name=first>
et <input name=second>
la sortie des messages d'erreur:
<span id="errNm2"></span> <span id="errNm1"></span>
j'ai déjà commencé à écrire l'errorPlacement: qui est l'endroit où vous personnalisez l'emplacement de votre message d'erreur.
Comment puis-je mettre le message d'erreurs dans ceux <!--5?
$(document).ready(function () {
$('#form').validate({
errorPlacement: function(error, element) {
error.append($('.errorTxt span'));
},
rules,
});
html prettyprint-override"><input type="text" name="first"/>
<input type="text" name="second"/>
<div class="errorTxt">
<span id="errNm2"></span>
<span id="errNm1"></span>
</div>
20
demandé sur
KyleMit
2014-10-22 05:09:34
3 réponses
Ce que vous devez utiliser est le errorLabelContainer
jQuery(function($) {
var validator = $('#form').validate({
rules: {
first: {
required: true
},
second: {
required: true
}
},
messages: {},
errorElement : 'div',
errorLabelContainer: '.errorTxt'
});
});
.errorTxt{
border: 1px solid red;
min-height: 20px;
}
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/jquery.validate.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/additional-methods.js"></script>
<form id="form" method="post" action="">
<input type="text" name="first" />
<input type="text" name="second" />
<div class="errorTxt"></div>
<input type="submit" class="button" value="Submit" />
</form>
Si vous souhaitez conserver votre structure, puis
jQuery(function($) {
var validator = $('#form').validate({
rules: {
first: {
required: true
},
second: {
required: true
}
},
messages: {},
errorPlacement: function(error, element) {
var placement = $(element).data('error');
if (placement) {
$(placement).append(error)
} else {
error.insertAfter(element);
}
}
});
});
#errNm1 {
border: 1px solid red;
}
#errNm2 {
border: 1px solid green;
}
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/jquery.validate.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/additional-methods.js"></script>
<form id="form" method="post" action="">
<input type="text" name="first" data-error="#errNm1" />
<input type="text" name="second" data-error="#errNm2" />
<div class="errorTxt">
<span id="errNm2"></span>
<span id="errNm1"></span>
</div>
<input type="submit" class="button" value="Submit" />
</form>
67
répondu
Arun P Johny
2014-10-22 03:57:10
Vous pouvez simplement créer des conditions supplémentaires qui correspondent aux champs dont vous avez besoin dans la même fonction. Par exemple, en utilisant votre code ci-dessus...
$(document).ready(function () {
$('#form').validate({
errorPlacement: function(error, element) {
//Custom position: first name
if (element.attr("name") == "first" ) {
$("#errNm1").text(error);
}
//Custom position: second name
else if (element.attr("name") == "second" ) {
$("#errNm2").text(error);
}
// Default position: if no match is met (other fields)
else {
error.append($('.errorTxt span'));
}
},
rules
});
j'Espère que ça aide!
12
répondu
Pete
2014-10-22 01:20:59
if (e.attr("name") == "firstName" ) {
$("#firstName__validate").text($(error).text());
console.log($(error).html());
}
Essayez ce texte de l'erreur de l'objet
1
répondu
Pankaj Mandale
2016-01-19 12:58:44