错误消息工具提示不可见

问题描述 投票:0回答:2

我想使用工具提示获取错误消息,我显示:没有跨度,其中id为demo以隐藏工具提示。然后使用getElementById javascript获取用户名为userverify的用户名,以获取输入是否为空,然后如果value为空则显示block和innerhtml为demo的id

function validateForm() {
  var x = document.getElementById("userverify").value;
  var y;
  if (x == "" || x == null) {
    y = document.getElementById("demo").styleDisplay = "block";
    document.getElementById("demo").innerHTML = y + "<h1>Empty Username</h1>";

  }
}
.tooltip {
  position: relative;
  display: inline-block;
  border-bottom: 1px dotted black;
}

.tooltip .tooltiptext {
  visibility: hidden;
  width: 120px;
  background-color: #555;
  color: #fff;
  text-align: center;
  padding: 5px 0;
  border-radius: 6px;
  position: absolute;
  z-index: 1;
  bottom: 125%;
  left: 50%;
  margin-left: -60px;
  opacity: 0;
  transition: opacity 0.3s;
}

.tooltip .tooltiptext::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: #555 transparent transparent transparent;
}

.tooltip:hover .tooltiptext {
  visibility: visible;
  opacity: 1;
}
<form action="" method="" name="">
  <br>
  <br>
  <br>
  <label>Username</label>
  <div class="tooltip">
    <input id="userverify" class="" type="text" name="username">
    <span class="tooltiptext" id="demo" style="display:none">Tooltip text</span>
  </div>
  <input onclick="validateForm()" type="submit" name="submit" value="Submit">

</form>
javascript html css tooltip
2个回答
0
投票

第一

y = document.getElementById("demo").styleDisplay = "block";

不正确...试试style.display

其次你的工具提示也有visibility:hiddenopacity:0 ....所以你需要用display更改这些值。

堆栈代码段

function validateForm() {
  var x = document.getElementById("userverify").value;
  var y = document.getElementById("demo");
  //console.log(x);
  if (x == "" || x == null) {
    y.style.display = "block";
    y.style.visibility = "visible";
    y.style.opacity = "1";
    y.innerHTML = "Empty Username";

  }
}
.tooltip {
  position: relative;
  display: inline-block;
  border-bottom: 1px dotted black;
}

.tooltip .tooltiptext {
  visibility: hidden;
  width: 120px;
  background-color: #555;
  color: #fff;
  text-align: center;
  padding: 5px 0;
  border-radius: 6px;
  position: absolute;
  z-index: 1;
  bottom: 125%;
  left: 50%;
  margin-left: -60px;
  opacity: 0;
  transition: opacity 0.3s;
}

.tooltip .tooltiptext::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: #555 transparent transparent transparent;
}

.tooltip:hover .tooltiptext {
  visibility: visible;
  opacity: 1;
}
<form action="" method="" name="">
  <br>
  <br>
  <br>
  <label>Username</label>
  <div class="tooltip">
    <input id="userverify" class="" type="text" name="username">
    <span class="tooltiptext" id="demo" style="display:none">Tooltip text</span>
  </div>
  <input onclick="validateForm()" type="button" name="submit" value="Submit">

</form>

0
投票

试试这个代码。我做了一些改动。 validateForm()函数不应该在submit按钮上,而是在form元素的onSubmit事件上。 onsubmit="return validateForm()"这意味着提交将取决于validateFrom()函数的返回值。

function validateForm(){

        var x = document.getElementById("userverify").value;
        var y = document.getElementById("demo");
        if(x == "" || x == null){
       y.style.display = "block";
       y.innerHTML = "Empty Username";    
       y.style.visibility = "visible";
       y.style.opacity = "1";
       return false;
        }
        else
        {
            y.style.display = "none";
        }
        
        return true;
}
.tooltip {
    position: relative;
    display: inline-block;
    border-bottom: 1px dotted black;
}


.tooltip .tooltiptext {
    visibility: hidden;
    width: 120px;
    background-color: #555;
    color: #fff;
    text-align: center;
    padding: 5px 0;
    border-radius: 6px;

    
    position: absolute;
    z-index: 1;
    bottom: 125%;
    left: 50%;
    margin-left: -60px;

   
    opacity: 0;
    transition: opacity 0.3s;
}


.tooltip .tooltiptext::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    margin-left: -5px;
    border-width: 5px;
    border-style: solid;
    border-color: #555 transparent transparent transparent;
}


.tooltip:hover .tooltiptext {
    visibility: visible;
    opacity: 1;
    }
<form action="#" method="" name="" onsubmit="return validateForm()">
  <br>
  <br>
  <br>
   <label>Username</label>  
     <div class="tooltip">
         <input id="userverify" class="" type="text" name="username"> 
          <span class="tooltiptext" id="demo" style="display:none;">Tooltip text</span>
     </div>
        <input type="submit" name="submit" value="Submit">
                        
                        </form>
© www.soinside.com 2019 - 2024. All rights reserved.