﻿function LimiterEntreeTexte(objetJQ) {
	var limite = parseInt($(objetJQ).attr('maxlength'));
	var texte = $(objetJQ).val();
	var nbChars = texte.length;
	if (nbChars > limite) {
		var texteAvantLimite = texte.substr(0, limite);
		$(objetJQ).val(texteAvantLimite);
	}
}


/*DOC READY GÉNÉRALISÉ*/
$(function () {
	//Quand on retrouve un élément (textboxes sauf textarea) qui possède l'attribut "data-val-length-max" (attribut ajouté quand utilisation d'une data annotation "StringLength" dans les Models, pour limiter la longeur du texte entré dans le champ), il faut limiter au clavier la longueur saisie en ajoutant l'attribut "maxlength" sur l'élément.
	$("[data-val-length-max]").each(function () { $(this).attr("maxlength", $(this).attr("data-val-length-max")); });
	//sur tous les TEXTEAREA qui ont un attribut "data-val-length-max", limiter en input clavier la longueur max, à la valeur indiquée par l'attribut
	$('textarea[data-val-length-max]').keyup(function () {
		LimiterEntreeTexte(this);
	});
	$('textarea[data-val-length-max]').bind("paste", function () {
		LimiterEntreeTexte(this);
	});


//	//Quand on retrouve un attribut regex ("data-val-regex-pattern") généré par les annotation "[RegularExpression(...)]" dans les modèles, on limite au clavier + paste en concordance avec la regex spécifiée
//	$('[data-val-regex-pattern]').keyup(function () {
//		var objRegExp = new RegExp($(this).attr("data-val-regex-pattern"), "g");
//		var contenu = $(this).val();
//		var bonCaracteres = new Array();
//		bonCaracteres = contenu.match(objRegExp);
//		if (bonCaracteres != null) {
//			var resultat = "";
//			for (i = 0; i < bonCaracteres.length; i++) {
//				resultat += bonCaracteres[i];
//			}
//			$(this).val(resultat);
//		} else {
//			$(this).val("");
//		}
//	});



});     //Fin du doc ready généralisé
