如何在不使用警告框的情况下用JavaScript显示错误?


在本文中,我们将学习如何使用javascript以及HTML DOM元素的innerHTML和textContent属性,在页面上内联显示错误,而无需警告框。

虽然警告框对于向用户显示错误很有用,但它们可能会造成干扰并中断用户体验。更优雅的解决方案是在页面上内联显示错误。

让我们了解如何通过两种方法来实现上述结果

方法一

在这种方法中,我们将使用innerHTML DOM元素属性在表单中内联显示错误消息。

示例

让我们通过一个示例来了解上述方法。

文件名:index.html

<html lang="en">
<head>
   <title>How to display error without alert box using JavaScript?</title>
   <style>
      span {
         color: red;
      }
   </style>
</head>
<body>
   <h3>How to display error without alert box using JavaScript?</h3>
   <form name="myForm" onsubmit="return validateForm()">
      <label for="name">Name:</label>
      <input type="text" id="name" name="name"><br>
      <span id="nameError"></span><br>
      <input type="submit" value="Submit">
   </form>

   <script>
      function validateForm() {
         var name = document.forms["myForm"]["name"].value;
         if (name == "") {
            document.getElementById("nameError").innerHTML = "Please enter your name";
            return false;
         }
      }
   </script>
</body>
</html>

方法二

在这种方法中,我们将使用三种不同的方法来显示错误消息,这涉及使用内联错误消息、CSS样式、classList和setAttributes方法。

示例

让我们通过一个示例来了解上述方法。

文件名:index.html

<html lang="en">
<head>
   <title>How to display error without alert box using JavaScript?</title>
   <style>
      .error {
         color: red;
      }
   </style>
</head>
<body>
   <h3>How to display error without alert box using JavaScript?</h3>
   <form name="myForm" onsubmit="return validateForm()">
      <label for="name">Name:</label>
      <input type="text" id="name" name="name"><br>
      <span id="nameError"></span><br>
      <input type="submit" value="Submit">
   </form>

   <script>
      // Method 1: Using inline error messages
      function validateForm() {
         var name = document.forms["myForm"]["name"].value;
         if (name == "") {
            document.getElementById("nameError").innerHTML = "Please enter your name";
            return false;
         }
      }
    
      // Method 2: Using CSS styling
      function validateForm() {
         var name = document.forms["myForm"]["name"].value;
         if (name == "") {
            document.getElementById("nameError").textContent = "Please enter your name";
            document.getElementById("nameError").style.color = "red";
            return false;
         }
      }
    
      // Method 3: Using classList
      function validateForm() {
         var name = document.forms["myForm"]["name"].value;
         if (name == "") {
            document.getElementById("nameError").textContent = "Please enter your name";
            document.getElementById("nameError").classList.add("error");
            return false;
         }
      }
    
      // Method 4: Using setAttribute
      function validateForm() {
         var name = document.forms["myForm"]["name"].value;
         if (name == "") {
            document.getElementById("nameError").textContent = "Please enter your name";
            document.getElementById("nameError").setAttribute("style", "color: red;");
            return false;
         }
      }
   </script>
</body>
</html>

结论

通过在页面上内联显示错误而不是使用警告框,可以为用户提供更优雅且用户友好的体验。在本文中,我们学习了如何使用javascript和两种方法在不使用警告框的情况下内联显示错误消息。我们分别使用了innerHTML、textContent和innerText属性来实现所需的结果。

更新于:2023年8月2日

1K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.