简体   繁体   English

Javascript 如何显示错误消息?

[英]Javascript How do I display an error message?

everyone, I'm fairly new to Javascript especially using the DOM so now came the time where I decided to put everything i've been learning to work, but now, I'm stuck on a problem.各位,我对 Javascript 还很陌生,尤其是使用 DOM,所以现在我决定把我一直在学习的所有东西都放在一起工作,但是现在,我遇到了一个问题。

Basically, i'm trying to display an error message once the user exceeds 180 characters in the textArea, however, I can't seem to output the expected result.基本上,一旦用户在 textArea 中超过 180 个字符,我就会尝试显示错误消息,但是,我似乎无法输出预期的结果。

Using the if statement and textContent i am unable to get solve this.使用 if 语句和 textContent 我无法解决这个问题。 What am I doing wrong?我究竟做错了什么? please help and thanks.请帮助和感谢。

here is the code:这是代码:

<html>
 <head>
   <title>JavaScript &amp; 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); 

You are trying to compare a path that doesn't exist in a number (counter.value.length) to a dom element (feedback = document.getElementById()) at if(counter.value.length <= feedback) .您正在尝试将数字(counter.value.length)中不存在的路径与if(counter.value.length <= feedback)处的 dom 元素(feedback = document.getElementById())进行比较。

Your counter is a number already counter = 180 - textEntered.length .您的计数器已经是一个数字counter = 180 - textEntered.length

You probably want to set a var minLength = 180 as well, then:您可能还想设置var minLength = 180 ,然后:

if (counter <= minLength) {
  feedback.textContent = ' characters must be 180 or less'
} else {
  feedback.textContent = ''
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM