Ich habe etwa 8 Texteingaben. Am Ende wurden sie alle mit PHP verknüpft, aber um die Benutzerfreundlichkeit zu erhöhen, habe ich sie in mehrere "Fragen" aufgeteilt.jQuery Character Counter für mehrere Eingänge
Die Felder werden am Ende verkettet und in einer SMS-Umgebung verwendet, in der ein Code von 160 Zeichen abgeschnitten wird. Ich muss alle 8 Eingaben mit jQuery zählen, um den Benutzern zu zeigen, wenn sie diese 160-Zeichen-Marke überschreiten.
Ich kann natürlich sehr leicht dies mit einer beliebigen Anzahl von Zeichen zählen Plugins da draußen, aber sie sind alle mit einem einzigen Textarea im Auge, nicht in mehrere Eingänge aufgeteilt.
Ich begann dieses mit
var current_count = parseInt($('#chars-remain span').text());
var regex=/^[a-zA-Z0-9\s]+$/;
if(regex.test($(this).val())){
var current_left = current_count - 1;
}
if (current_left <= 0) {
$('#chars-remain span').addClass('outOfChars');
} else {
$('#chars-remain span').removeClass('outOfChars');
}
$('#chars-remain span').text(current_left);
und das HTML so etwas wie
<p id="chars-remain"><span>160</span> Characters Remain</p>
zu bauen, aber sie nicht wirklich funktionieren. Wenn Sie den Delete-Schlüssel verwenden, zählt es immer noch als -1 zum Gesamtwert und es gibt ein paar andere Fehler. Gibt es eine Möglichkeit, den obigen Code zu verwenden und es funktioniert oder gibt es ein Plugin, das dies tut, das ich nicht finden kann oder vielleicht jemand eine bessere Idee hat, was zu versuchen?
Danke !!
/// * EDIT ** \ *
Meine aktuellen jQuery ist Setup wie folgt aus:
$('#form-edit-card input').live('blur keyup',function(e) {
$('#howto').hide();
$('#in-firstName').text($('#first_name').val()).show();
$('#in-lastName').text($('#last_name').val()).show();
$('#in-titlePosition').text($('#job_title').val()).show();
$('#in-company').text($('#company_name').val()).show();
if($('#phone_number').val() != "") { $('#in-officePhone').text("o: "+$('#phone_number').val()).show(); }
if($('#mobile_number').val() != "") { $('#in-mobilePhone').text("m: "+$('#mobile_number').val()).show(); }
$('#in-emailAddress').text($('#email').val()).show();
$('#in-website').text($('#website').val()).show();
});
Dies ermöglicht es mir, so dass während der Benutzer tippt auf den Feldern, es eine zeigt Beispiel, wie die SMS in einer Box neben der Seite aussehen wird. Wenn ich also versuche, K4emics Antwort zu verwenden, funktioniert es größtenteils, aber auf dem Office Phone und dem Handy fügt es automatisch das 'o:' und 'm:' hinzu, also brauche ich eine Möglichkeit, diese drei zusätzlichen Zeichen zu sammeln auch. Vielleicht wäre es sinnvoller, die Zeichen der Absätze zu zählen, nachdem die Eingabe auf sie geschrieben hat, damit die automatisch hinzugefügten Zeichen ebenfalls gezählt werden?
Warum nicht die 2x3 Zeichen von den zugewiesenen Zeichen subtrahieren? – K4emic
Ich würde, aber wenn sie diese Felder nicht ausfüllen, da sie nicht erforderlich sind, dann subtrahiert es Zeichen, die nicht unbedingt entfernt werden müssen. – LostInQuery