J'ai déjà réussi à faire fonctionner le plugin de validation jQuery avec RequireJs. J'essaye maintenant de placer les paramètres par défaut de validation de jquery afin qu'il ne valide pas les champs enveloppés dans une balise avec un attribut de data-prefix (ceci est fait dans le fichier Page1.js). Toutefois, lorsque vous cliquez sur le bouton Envoyer, il tente de valider les deux champs.RequireJS avec jQuery Validation - Définir les paramètres par défaut
Voici le code (la question initiale liée à une démonstration plus complexe):
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta charset="utf-8" />
<script src="http://ajax.cdnjs.com/ajax/libs/require.js/2.1.5/require.js"></script>
<script>
require.config({
paths: {
'jquery': 'http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.8.3',
'jquery.validate': 'http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate',
'jquery.validate.unobtrusive': 'http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive'
},
shim: {
'jquery.validate': ['jquery'],
'jquery.validate.unobtrusive': ['jquery', 'jquery.validate']
}
});
require(['jquery', 'jquery.validate', 'jquery.validate.unobtrusive'], function($) {
$.validator.setDefaults({
ignore: '[data-js-val-prefix] *'
});
});
</script>
</head>
<body>
<form>
<div class="validation-summary-valid" data-valmsg-summary="true"><span>Please correct the errors and try again.</span>
<ul><li style="display:none"></li></ul>
</div>
<fieldset>
<legend>Include</legend>
<input name="Include" type="text" required />
</fieldset>
<fieldset data-js-val-prefix="Exclude">
<legend>Exclude</legend>
<input name="Exclude" type="text" required />
</fieldset>
<p><button type="submit">Submit</button></p>
</form>
</body>
</html>
Je ne suis pas en utilisant les versions minified des bibliothèques qu'il peut aider lors du débogage.
J'apprécierais l'aide. Merci
Edit:
Si vous modifiez le bloc de script à une des conditions suivantes, il fonctionne très bien.
Sans RequireJs:
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.8.3.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.js"></script>
<script>
$.validator.setDefaults({
ignore: '[data-js-val-prefix] *'
});
</script>
Sans JavaScript Discret:
<script>
require.config({
paths: {
'jquery': 'http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.8.3',
'jquery.validate': 'http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate'
},
shim: {
'jquery.validate': ['jquery']
}
});
require(['jquery', 'jquery.validate'], function($) {
$.validator.setDefaults({
ignore: '[data-js-val-prefix] *'
});
$(function() {
$('form').validate();
});
});
</script>
Cela me donne à penser qu'il ya un problème avec la bibliothèque de validation discrète et RequireJs ensemble. Je suis sûr que je fais quelque chose d'anormal.
Veuillez inclure le code dans votre question. Sinon, après que cela soit résolu et que votre démo soit partie, ceci est inutile pour les futurs lecteurs. – Sparky
Je vais modifier la question une fois que je supprime la démo. J'ai commencé à l'écrire, mais il est devenu laid et a pensé qu'il pourrait distraire quiconque souhaite aider. – nfplee
Alors, où est votre code '.validate()'? Je pense vraiment que ce serait mieux pour vous de montrer le code pour votre exemple concis dans la question. – Sparky