Jak přidat do validační hlášky skutečný počet znaků v textarea?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
MartyIX
Člen | 217
+
+1
-

Jak udělat toto:

$form->addTextArea('note', 'Poznámka:')
    ->addRule(Form::MAX_LENGTH, 'Poznámka může být %d znaků dlouhá. Použili jste %skutecnyPocetZnaku znaků.', 10000);

Koukal jsem do dokumentace a do netteForms.js a podle všeho toto podporované není. Nebo se pletu?

MartinitCZ
Člen | 580
+
+1
-

Pokud se nepletu, tak toto opravdu možné není.
Napadá mě jen řešení pomocí js, kde si navěsíš na daný input keyup a flashmessage aktualizuješ (změníš počet znaků).

MartyIX
Člen | 217
+
0
-

Díky. Raději použiju maxLength atribut. Není to tak pěkné, ale bude to fungovat vždycky.

japlavaren
Člen | 404
+
0
-

Nič ta neobmedzuje použiť max length a javascriptom zobrazovať, koľko znakov ostáva do konca…

Jan Mikeš
Člen | 771
+
0
-

Treba ti to pomuze pro inspiraci, ja pouzivam toto:

$(function(){
	$("input[maxlength], textarea[maxlength]").each(function(){
		$(this).after("<span class=\"maxlength-info\"></span>");
		maxlengthInfo($(this));
	}).on("change blur keydown keypress keyup", function() {
		maxlengthInfo($(this));
	});
});


function maxlengthInfo ($el) {
	var max = $el.attr("maxlength");
	var act = $el.val().length;

	var $span = $el.parent().find(".maxlength-info");

	$span.html("<span>Zbývá " + (max-act) + " znaků z " + max + "</span>");

	if (act >= max) {
		$span.addClass("form-warning-message");
		$span.removeClass("form-success-message");
	} else {
		$span.removeClass("form-warning-message");
		$span.addClass("form-success-message");
	}

}