jQuery valider règle personnalisée dans les attributs de données
J'ai une entrée de texte qui a déjà de valider des règles
<input type="text" value="" placeholder="Write the code here"
name="myCode" id="myCode" data-rule-required="true"
data-msg-required="Required field" class="form-control"
aria-required="true">
et de créer une règle personnalisée pour valider la syntaxe du code
$("#myCode").rules("add", { checkCode:
function () {
return $('input[name=codeText]').val();
}
});
Avec cette méthode, je suis la définition que myCode
doivent être validés à l'aide d'aussi checkCode
méthode qui transforme en recevoir en entrée la valeur de codeText
.
Cela fonctionne vraiment très bien. Toutefois, pour assurer la propreté du code, je voudrais déplacer la définition des règles à l'intérieur d'un data-*
attribut, mais je ne comprends pas comment écrire le code dynamiquement passer l'équivalent de retour $('input[name=codeText]').val()
. Veuillez vous référer à la question des marques ci-dessous.
<input type="text" value="" placeholder="Write the code here"
name="myCode" id="myCode"
data-rule-required="true" data-msg-required="Required field"
data-rule-checkCode="????" data-msg-checkCode="Invalid code"
class="form-control" aria-required="true">
Ce que je dois mettre dans la valeur de l'attribut???
MODIFIER
Comme par Sparky répondre j'ai fini par mettre tout le sélecteur sur l'attribut. Comme ceci:
<input type="text" value="" placeholder="Write the code here"
[...]
data-rule-checkCode="input[name=codeText]"
[...]>
et en l'utilisant comme ça dans ma méthode
$.validator.addMethod("checkCode", function(value, element, param) {
return $(param).val();
}, '...');
OriginalL'auteur Lorenzo | 2015-10-10
Vous devez vous connecter pour publier un commentaire.
La
.rules()
méthode est pas comment vous créer une règle personnalisée. C'est seulement la façon dont vous déclarer règles existantes sur une entrée donnée.L'.
.addMethod()
méthode est la façon dont vous créer une règle personnalisée.Ensuite, vous pouvez utiliser
.rules('add')
pour l'affecter à votre domaine...Voir: http://jqueryvalidation.org/jQuery.validator.addMethod/
Alternativement, vous pouvez faire de la méthode générique en passant par le
name
comme paramètre...Puis attribuer à votre domaine...
Aussi loin que d'utiliser les attributs de données, on ne sait pas pourquoi vous avez besoin de le faire lorsque vous êtes dynamiquement à l'aide de la
.rules()
méthode.Peut-être après vous créer correctement les
checkCode
règle, il vous suffit de la déclarer à l'aide dedata-rule-checkCode="true"
oudata-rule-checkCode="codeText"
.With this method I am defining that myCode should be validated by using also checkCode method which in turns receive in input the value of codeText
. Toutefois merci pour votre suggestion, j'ai fini par mettre tout le sélecteur sur l'attribut. MerciJe vous remercie pour votre dernière sentense qui stipule données-règle-checkCode. Le "checkCode" est le point clé. Je confirme, le "data-règle-check-code" ne fonctionnera pas.
OriginalL'auteur Sparky