form表单提交时验证,如果不对则不跳转页面

表单提交时验证

这里我们举一个验证复选框是否选择多于两个的例子(多余等于两个就跳转)
主要方法就是在标签中加上 onsubmit

 <html>
<head>
</head>
<body>

<form action="a.html" method="post" "return check()">
<input type="checkbox" value="value1" name="item" onClick="onCheckBox(this);"/> 选项一 
<br>
<input type="checkbox" value="value2" name="item" onClick="onCheckBox(this);"/> 选项二 
<br>
<input type="checkbox" value="value3" name="item" onClick="onCheckBox(this);"/> 选项三 
<br>
<input type="checkbox" value="value4" name="item" onClick="onCheckBox(this);"/> 选项四 
<br> 
<input type="checkbox" value="value5" name="item" onClick="onCheckBox(this);"/> 选项五 
</form>

</body>
</html>


function check() {
        var obj=document.getElementsByName("presetId");
        var num=0;
        for (i=0;i<obj.length ;i++ )
            if (obj[i].checked )
                num+=1;
        if (num<2){
            alert("请选择至少两个点");
            return false;
        }
        return true;
    }

这样我们就可以在提交表单时验证一下表单的正确性,如果是正确的就跳转,如果不是就不跳转。
在这里插入图片描述
像这样,不知道为什么在文中显示不出来,就上个图吧。

### 使用JavaScript实现在表单提交后重定向页面 当处理表单提交并希望在成功提交之后重定向到另一个页面,可以采用多种方法来实现这一目标。一种常见的方式是在服务器端完成数据处理后返回特定响应给客户端,在前端通过监听该响应执行重定向操作。 对于纯前端控制下的场景,则可以直接利用`window.location.href`属性来进行页面跳转[^2]: ```javascript document.querySelector('form').addEventListener('submit', function(event){ event.preventDefault(); // 阻止默认行为 const formData = new FormData(this); fetch('/your-server-endpoint', { method: 'POST', body: formData, }) .then(response => response.json()) .then(data => { if (data.success) { // 假设服务端返回了一个表示成功的标志位 window.location.href = '/target-page'; // 成功则转向指定URL } else { alert('Submission failed'); } }); }); ``` 上述代码片段展示了如何捕获表单提交事件,并阻止其默认动作以便手动发送请求至服务器。一旦接收到预期的成功反馈,就立即改变当前窗口的位置以达到页面切换的效果。 另外,如果项目框架允许的话,也可以考虑使用Post/Redirect/Get模式(Post-Redirect-Get, PRG),它是一种用于Web应用程序设计的最佳实践,能够有效防止重复提交问题以及刷新浏览器再次触发相同的操作。 #### 实现PRG模式的一个简单例子如下所示: 1. 用户填写表单并通过HTTP POST方式将其提交; 2. 服务器接收请求并对数据进行必要的验证和保存工作; 3. 处理完成后是直接渲染新的视图而是发出一次临性的HTTP 3xx状态码(通常是302 Found),并将Location头部设置为目标地址; 4. 浏览器自动跟随这个新位置发起GET请求加载最终显示的内容页; 这种方法仅提高了用户体验流畅度,还增强了应用的安全性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值