3秒或5秒后自动隐藏提示消息和重定向到另一页

亮术网 2020-06-08 本网原创

在提交表单的时候,每当用户输入有错误时要提示用户错在哪里,以便用户改正,从而顺利完成表单的提交。通常的做法是,当用户填写完了表单的所有项,提交表单时,从头开始检查,当检查到有错误时立即返回,把具体的错误反馈给用户,也就是在客户端显示错误提示消息。大多情况下,显示错误提示消息后,提示文字一直显示在那里,当用户纠正错误再次提交时,如果检查没有错误,则错误提示不再显示,如果纠正一项后,后面的还有错误,继续显示错误原因,如此反复直到所有项输入都正确完成表单提交。

错误提示消息通常都比较简短并且用特别亮的颜色显示,用户一两秒就能看完,一直显示在那里显得比较明显,如果3秒或5秒后自动把它隐藏起来不是更好,并且用 javascript 实现十分简单,一两句代码就能搞定。

 

1、3秒或5秒后自动隐藏提示消息

html代码:

<ul class="ul">
    <li>产品:<input type="text" id="productId" /></li>
    <li>品牌:<input type="text" id="tagId" /></li>
    <li>价格:<input type="text" id="priId" /></li>
    <li><input type="button"; id="btnId" value=" 提 交 " onclick="return checkText()" />
    <span id="msgId" class="msg"></span></li>
  </ul>

 

CSS代码:

<style type="text/css">
    .ul{line-height:28px; list-style:none;} .msg{color:Red;}
  </style>

 

javascript代码:

<script type="text/javascript">
  function checkText() {
    var proId = document.getElementById("productId"), pp = document.getElementById("tagId"), priId = document.getElementById("priId"), msg = document.getElementById("msgId");
    if (proId.value == "") {
      msg.innerHTML = "产品不能为空!";
      setTimeout("hideMsg()", 3000);
      return false;
    }
    if (pp.value == "") {
      msg.innerHTML = "品牌不能为空!";
      setTimeout("hideMsg()", 3000);
      return false;
    }
    if (priId.value == "") {
      msg.innerHTML = "价格不能为空!";
      setTimeout("hideMsg()", 3000);
      return false;
    }
    return true;
  }
  function hideMsg() {
    var msg = document.getElementById("msgId");
    msg.innerHTML = "";
  }
  </script>

以上代码实现了输入错误显示提示消息后,提示文字在3秒后被隐藏(清除),也可以设置为5秒,只要把 checkText() 方法中的 3000 改为 5000 即可,要设置为其它时间,按此方法改即可。

 

2、3秒或5秒后自动重定向

假如要在3秒后自动跳转到另一个网页,javascript代码:

setTimeout("self.location = '/htm/index.htm'", 3000);

如果要在5秒后自动跳转,把 3000 改为 5000 即可。