各位,我對 Javascript 還很陌生,尤其是使用 DOM,所以現在我決定把我一直在學習的所有東西都放在一起作業,但是現在,我遇到了一個問題。
基本上,一旦用戶在 textArea 中超過 180 個字符,我就會嘗試顯示錯誤訊息,但是,我似乎無法輸出預期的結果。
使用 if 陳述句和 textContent 我無法解決這個問題。我究竟做錯了什么?請幫助和感謝。
這是代碼:
<html>
<head>
<title>JavaScript & jQuery - Chapter 6: Events - Keypress</title>
</head>
<body>
<div id="page">
<h1>List King</h1>
<form id="messageForm">
<h2>My profile</h2>
<textarea id="message"></textarea>
<div id="charactersLeft">180 characters</div>
<div id="feedback"></div>
<div id="lastKey"></div>
</form>
</div>
<script src="key.js"></script>
</body>
</html>
var el;
function charCount(e) {
var textEntered, charDisplay, counter, lastKey, feedback;
textEntered = document.getElementById('message').value;
charDisplay = document.getElementById('charactersLeft');
counter = (180 - (textEntered.length));
charDisplay.textContent = counter;
lastKey = document.getElementById('lastKey');
lastKey.textContent = ' Last key in ASCII code: ' e.keyCode;
// Displays error message
var feedback = document.getElementById('feedback');
if(counter.value.length <= feedback) {
feedback.textContent = ' characters must be 180 or less'; }
else {
feedback.textContent = '';
}
}
el = document.getElementById('message');
el.addEventListener('keyup', charCount, false);
uj5u.com熱心網友回復:
您正在嘗試將數字中不存在的路徑(counter.value.length)與 dom 元素(feedback = document.getElementById())進行比較if(counter.value.length <= feedback)。
你的計數器已經是一個數字了counter = 180 - textEntered.length。
您可能還想設定一個var maxLength = 180,然后:
if (counter <= maxLength) {
feedback.textContent = ' characters must be 180 or less'
} else {
feedback.textContent = ''
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/346171.html
標籤:javascript html dom
上一篇:為什么控制臺給我結果未定義
