2012-04-08 39 views
0

嗨,大家好,我在這裏有這個腳本,裏面有字符和線條,現在雖然它仍然允許線條和字符進入減號,但是我希望它也放上一個警告框,用戶無法輸入更多文字,您能幫我解決嗎?Javascript error box

的javascript:

function textCounter(theField,theCharCounter,theLineCounter,maxChars,maxLines,maxPerLine) { 
    var strTemp = ""; 
    var strLineCounter = 0; 
    var strCharCounter = 0; 

    for (var i = 0; i < theField.value.length; i++) 
    { 
     var strChar = theField.value.substring(i, i + 1); 
     if (strChar == '\n') 
     { 
      strTemp += strChar; 
      strCharCounter = 1; 
      strLineCounter += 1; 
     } 
     else if (strCharCounter == maxPerLine) 
     { 
      strTemp += '\n' + strChar; 
      strCharCounter = 1; 
      strLineCounter += 1; 
     } 
     else 
     { 
      strTemp += strChar; 
      strCharCounter ++; 
     } 
    } 

    theCharCounter.value = maxChars - strTemp.length; 
    theLineCounter.value = maxLines - strLineCounter; 
} 

,並在代碼中使用:

<textarea name="comment" cols="50" rows="10" wrap="VIRTUAL" onKeyUp="textCounter(theForm.comment,theForm.remChars,remLines,900,30,50);"></textarea> 
<br><input name=remChars type=text value="900" size=3 maxlength=3 readonly> characters left 
<br><input name=remLines type=text value="30" size=3 maxlength=3 readonly> lines left<br> 

報告莫德

回答

1

1 - 添加一個檢查函數的結尾:

var check = strTemp.length <= maxChars && strLineCounter <= maxLines; 
if (!check) alert("Error message here!"); 

2 - 修剪文字領域,所以它僅包含所需字符:

theField.value = theField.value.sbustring(0, maxChars - 1); 

3 - 添加返回函數的末尾:

return check ; 

4 - 和更改事件結合:

onKeyUp="return textCounter(theForm.comment,theForm... 
+0

感謝您的建議,但每次添加單個字符時都會出現錯誤框,即使我放入單個字符 – user1250526 2012-04-08 23:12:18

+0

Ops ...我反過來檢查。所有你需要做的就是在if語句中的'check'之前加一個'!'('NOT')。我已經更新了答案。 – rcdmk 2012-04-09 00:41:09

+0

非常感謝,雖然每次出現錯誤框時都會添加一行,因此您可以繼續輸入並單擊錯誤框以添加另一行和錯誤系統,對此有何更新?否則非常感謝 – user1250526 2012-04-09 01:34:05