2016-03-08 175 views
0

我需要一些帮助来查找输入标签中的字符数并在有一定数量时创建警报。就像有25个,那么它会创建一个提示“Max”。 Here是它的小提琴。这是一个小的东西我have--如何查找输入标签中的字符数量

Char.innerText = $("#input:text").val().length; 

能正常工作,为了什么我使用它,但是当我尝试在if语句中使用Char,它不会工作。

+2

为什么不能使用'$(“#input:text”).val().length == 25'作为条件? – Yass

+1

jsfiddle中的内容无法正常工作? – AtheistP3ace

+2

可能是因为char的内容是文本,而不是整数。另外,如果你把一个alert()放在setInterval中,你就不会喜欢这个结果。尝试这样的:https://jsfiddle.net/hrL0ea2k/ – Dave

回答

0

添加if语句在KEYUP功能:

if ($("#input:text").val().length == 25){ 
     alert("Too many characters."); 
    } 

Updated JSFiddle

编辑:卢克刚刚击败我给它,但有在哪里把它放在JSfiddle中。

+0

真棒,感谢您的帮助! – Moox

0

为什么不使用这样的:

if ($("#input:text").val().length == 25) { 
alert('MAXXX'); 
} 
+0

是的,也可以,谢谢 – Moox

0

正如Dave在评论中指出的那样,您需要确保将Char.innerText与字符串进行比较,因为它是文本。

下面是一个有效的if语句中使用Char.innerText

if (Char.innerText == "25") { 
    // alert 
} 

或者,你可以改变Char.innerText整数与25

0

这是比较与事件以及一些预警和输出的另一种方法。限制是五位字符。

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

0

既然你已经使用input元素为什么不比较反对这个值,而不是硬编码到if语句maxlength属性。

此外,而不是在keyup事件上触发它,该键盘事件也将检测到按Tab键或其他非打印控制字符,您应该使用输入事件。

$('#input:text').on('input', function checkLength() { 
    var max = this.getAttribute('maxlength'); 
    if (max && this.value.length == max) { 
    alert('max length reached'); 
    } 
}); 
相关问题