提交表单触发页面自动刷新的问题

背景

为了向js脚本实现一个测试页面,随手写了一个带提交按钮的表单,遇到了点击提交按钮时,每次都会触发页面刷新,以至于我还没有在显示结果的页面元素(函数代码写在延迟执行函数setTimeout里)看到我的测试结果,页面就被重新加载了。

页面描述

我的页面包含一个带legend标题,包含两个input输入框,和一个submit确认按钮的form表单,以及一个显示测试结果的div块状元素。
在这里插入图片描述

代码
<form>
    <fieldset>
        <legend>Please add CPU Load record</legend>
        Interval (in miliseconds):<br>
        <input id = 'interval' type = "text" /><br>
        Record for CPU Load:<br>
        <input id = 'record' type = "text" /><br><br>
        <input type = "submit" value = "Submit">
    </fieldset>
</form>
方法一 设置表单的onsubmit事件为"return false"
原理

form对象的onsubmit事件类似onclick,都是先处理调用的函数,再进行表单是否跳转布尔值的判断

  1. οnsubmit=“return true” 为默认的表单提交事件
  2. οnsubmit="return false"为阻止表单提交事件
注意

onsubmit 事件作用对象是form表单,所以把onsubmit事件加在提交按钮上是没效果的

代码
<form onsubmit="return false;">
    <fieldset>
        <legend>Please add CPU Load record</legend>
        Interval (in miliseconds):<br>
        <input id = 'interval' type = "text" /><br>
        Record for CPU Load:<br>
        <input id = 'record' type = "text" /><br><br>
        <input type = "submit" value = "Submit">
    </fieldset>
</form>
方法二 事件阻止
原理

在form表单sumbit提交事件的event handler处理函数中,添加event.preventDefault(); 来阻止事件

代码
document.querySelector('form').addEventListener('submit', function(event) {
        
        /*
            do someting to handle form input
        */
        event.preventDefault();
    })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JS 中的表单自动提交通常是利用表单元素的 `submit()` 方法来实现的。下面我来详细说明一下: 首先,在 HTML 中,我们需要创建一个表单,并为其指定一个 ID,以方便在 JavaScript 中访问和操作。例如: ```html <form id="myForm" action="submit.php" method="POST"> <input type="text" name="username"> <input type="password" name="password"> <input type="submit" value="提交"> </form> ``` 然后,在 JavaScript 中,我们可以使用 `document.getElementById()` 方法来获取表单元素,并调用 `submit()` 方法来实现表单自动提交。例如: ```javascript window.onload = function() { var form = document.getElementById("myForm"); form.submit(); // 自动提交表单 }; ``` 当页面加载完成后,上述 JavaScript 代码会自动获取表单元素,并调用 `submit()` 方法来提交表单,从而实现自动提交的效果。 需要注意的是,由于表单提交通常会触发页面刷新或跳转,为了避免页面刷新,在提交表单之前,可以使用 `preventDefault()` 方法来阻止默认的表单提交行为。例如: ```javascript window.onload = function() { var form = document.getElementById("myForm"); form.addEventListener("submit", function(event) { event.preventDefault(); // 阻止表单默认提交行为 form.submit(); // 自动提交表单 }); }; ``` 以上就是利用 JavaScript 实现表单自动提交的方法。当页面加载完成后,表单自动提交而不需要用户手动点击提交按钮。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值