2016-03-08 56 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'); 
    } 
}); 
相關問題