Javascript 设置窗体节上的超时 函数f(){ var refresh=document.getElementById('form'); 计时器=设置超时('f()',1000); 如果(计时器==10){ 清除超时(计时器); refresh.src='newurl'; } }

Javascript 设置窗体节上的超时 函数f(){ var refresh=document.getElementById('form'); 计时器=设置超时('f()',1000); 如果(计时器==10){ 清除超时(计时器); refresh.src='newurl'; } },javascript,Javascript,填表 发送 基于上述代码,我需要这样做: 页面加载10秒后,用“新URL”替换页面中的表单部分 由于某种原因,它不起作用。任何帮助都将不胜感激。提前感谢设置超时不会返回值,因此您的计时器值不能达到10。 您应该创建两个函数,f以10000的超时开始,然后启动一个remplace()函数来完成您的工作 大概是这样的: <!DOCTYPE html> <head> <base target="_top"> <script type="text/

填表

发送 基于上述代码,我需要这样做:

页面加载10秒后,用“新URL”替换页面中的表单部分


由于某种原因,它不起作用。任何帮助都将不胜感激。提前感谢

设置超时不会返回值,因此您的计时器值不能达到10。 您应该创建两个函数,f以10000的超时开始,然后启动一个remplace()函数来完成您的工作

大概是这样的:

<!DOCTYPE html>

<head>
  <base target="_top">

  <script type="text/javascript">
    function f() {
      var refresh = document.getElementById('form');
      timer = setTimeout('f()', 1000);
      if (timer == 10) {
        clearTimeout(timer);
        refresh.src = 'New URL';
      }
    }

  </script>

</head>

<body onload="f()">

  <p>Complete the form</p>

  <form id="form" action="URL" target="_self" method="POST">
    <div><input type="text" placeholder="name" required name="Name"></div>
    <div><input type="email" placeholder="email" required name="E-mail"></div>
    <div><button type="submit">Send</button></div>
  </form>

</body>

</html>



问题是,
timer==10
永远不会发生。定时器变量是用于取消定时器的参考。这是固定版本

function f(){    
    var refresh = document.getElementById('form');
    timer = setTimeout('replace()', 10000);
}

function replace(){    
    var refresh = document.getElementById('form');
    refresh.src = 'New URL';
}

.内容{
颜色:红色;
字体大小:24px;
}
填表

发送 这是新内容! 函数f(){ const elementToHide=document.getElementById(“表单”); elementToHide.style.display='none'; const elementToShow=document.getElementById(“内容”); elementToShow.style.display='block'; } 常数timerRef=setTimeout(f,1000*10);
这里是更新后的链接,您可以查看

这里还有一个链接,你可以在这里找到

编辑:


对于内容的更改,我将隐藏表单并显示新内容,您可以像其他元素一样设置样式。

您的代码有几个问题:

  • 似乎您假设setTimeout()的结果将给出从1到10的序列号。这只是一个身份证,没别的了
  • 表单没有src属性
  • 我的回答涉及这两点。不过,在10秒后隐藏一个表单以替换为其他表单似乎很奇怪。例如,如果用户仍在键入,该怎么办

    函数init(){
    var refresh=document.getElementById('form');
    定时器=设置超时(hideForm,10000);
    }
    函数hideForm(){
    var form=document.getElementById('form');
    var newURL=document.getElementById('newURL');
    表单.classList.add(“隐藏”);
    newURL.classList.remove(“隐藏”);
    }
    。隐藏{
    显示:无;
    }
    
    填表

    发送 新网址
    感谢您的关注。我试过了,但什么也没发生。谢谢你的关注。是的,它可以工作,但是否需要用src替换innerText以打开表单部分@Cedomir RackovFor内的另一个页面,因为您必须用iframe之类的东西替换整个表单。您是要替换页面上的表单还是要将用户重定向到另一个页面?是的,我以前尝试过。好的,有没有办法在内部文本中添加更多的html和css@Cedomir Rackov“您想替换页面上的表单还是想将用户重定向到另一个页面?”只需在10秒后替换表单即可
    <!DOCTYPE html>
    <html>
      <head>
        <style>
          .content {
            color: red;
            font-size: 24px;
          }
        </style>
      </head>
    
      <body>
        <p>Complete the form</p>
        <form id="form" action="URL" target="_self" method="POST">
          <div><input type="text" placeholder="name" required name="Name"></div>
          <div><input type="email" placeholder="email" required name="E-mail"></div>
          <div><button type="submit">Send</button></div>
        </form>
        <div id="content" style="display: none;" class="content">
          This is new content!
        </div>
    
    
    
        <script type="text/javascript">
          function f() {
            const elementToHide = document.getElementById("form");
            elementToHide.style.display = 'none';
            const elementToShow = document.getElementById("content");
            elementToShow.style.display = 'block';
          }
          const timerRef = setTimeout(f, 1000 * 10);
    
        </script>
      </body>
    
    </html>