J'ai besoin d'aide pour trouver le nombre de caractères dans une balise d'entrée et créer une alerte lorsqu'il y a un certain montant. Comme s'il y en a 25, cela crée une alerte qui dit "Max". Voici le violon sur lequel il se trouve. C'est un peu ce que j'ai ...
Char.innerText = $("#input:text").val().length;
Cela fonctionne bien pour ce que je l'utilise, mais lorsque j'essaie d'utiliser Char
dans une instruction if
, cela ne fonctionnera pas.
5 réponses
Ajoutez l'instruction if dans votre fonction keyup:
if ($("#input:text").val().length == 25){
alert("Too many characters.");
}
EDIT: Luke vient de me battre, mais il y a où le mettre dans le JSfiddle.
Puisque vous utilisez déjà l'attribut maxlength pour l'élément d'entrée, pourquoi ne pas comparer avec cette valeur plutôt que de le coder en dur dans l'instruction if.
De plus, plutôt que de le déclencher sur l'événement de frappe qui détectera également les pressions sur la touche de tabulation ou d'autres caractères de contrôle non imprimables, vous devez utiliser l'événement d'entrée.
$('#input:text').on('input', function checkLength() {
var max = this.getAttribute('maxlength');
if (max && this.value.length == max) {
alert('max length reached');
}
});
Comme Dave l'a souligné dans les commentaires, vous devez vous assurer que vous comparez Char.innerText
à une chaîne car il s'agit de texte.
Voici une instruction if
valide utilisant Char.innerText
:
if (Char.innerText == "25") {
// alert
}
Alternativement, vous pouvez remplacer Char.innerText
par un entier et comparer avec 25.
Il s'agit d'une autre approche avec un événement et une alerte et une sortie. La limite est de cinq caractères.
function textCounter2(field, counter, maxlimit) {
if (field.value.length > maxlimit) {
field.value = field.value.substring(0, maxlimit);
alert('Max!');
} else {
document.getElementById(counter).innerText = maxlimit - field.value.length;
}
}
<input name="test" onkeyup="textCounter2(this, 'subtitlecount_lbl', 5)" onchange="textCounter2(this, 'subtitlecount_lbl', 5)" /><br />
<span id="subtitlecount_lbl"></span> characters left
Pourquoi ne pas utiliser ceci:
if ($("#input:text").val().length == 25) {
alert('MAXXX');
}
Questions connexes
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.