在客户端先通过JS验证后再将表单提交到服务器
问题:想要在客户端先通过JS验证后再将表单提交到服务器
参考资料:
试验过程:
服务器端使用PHP
<html>
<head>
<script type="text/javascript" src="plugins/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("form").submit(function () {
var FirstName=$("input[name=FirstName]").val();
var LastName=$("input[name=LastName]").val();
if((FirstName==="") || (LastName==="")){
alert("请输入全部信息");
return false;
}else{
return true;
}
});
$("button").click(function () {
$("form").submit();
})
});
</script>
</head>
<body>
<form name="input" action="" method="get">
First name:
<input type="text" name="FirstName" size="20">
<br />Last name:
<input type="text" name="LastName" size="20">
<br />
<input type="submit" value='使用input提交,type="submit"'><br/>
<input type="submit" value='使用input提交,type="submit" name="submit"' name="submit"><span>有name属性,会导致点击<button type="button">标签的按扭无法提交到服务器</span><br/>
<button type="button">使用button提交type="button"</button>
<span>无法提交<input type="submit" name="submit">的信息,因此不能将表单提交到服务器</span><br/>
<button>使用button提交,无type</button><span>默认type="submit",JS会验证两次</span><br/>
<button type="submit">使用button提交type="submit"</button><span>JS会验证两次,同上</span><br/>
</form>
<hr/>
表单外:<br/>
<button>触发表单域的 submit 事件</button>
</body>
</html>
<?php
if(!empty($_GET['FirstName']) && !empty($_GET['LastName'])){
echo '<p>Fisrt Name:'.$_GET['FirstName'].'</p>';
echo '<p>Last Name:'.$_GET['LastName'].'</p>';
}
?>

注意1:
在有<input type="submit" name="submit" value="提交"/>的情况下使用<button type="button">提交</button>会导致通过JS验证后表单不提交到服务器。
原因不详
注意2:
试验中<button type="submit">提交</button>,会走两次JS验证,
原因应该是button自身的type="submit"执行了一次,click事件中的$("from").submit();执行了一次。
最终结论:
建议使用<button type="submit">Submit</button>来提交表单
在客户端先通过JS验证后再将表单提交到服务器的更多相关文章
- form表单验证失败,阻止表单提交
form表单验证失败,阻止表单提交 效果演示: 贴上完整代码: <!DOCTYPE html> <html lang="en"> <head> ...
- koa 基础(十)原生node.js 在 koa 中获取表单提交的数据
1.app.js // 引入模块 const Koa = require('koa'); const router = require('koa-router')(); /*引入是实例化路由 推荐*/ ...
- js控制页面显示和表单提交
早期的web页面在显示方面一般在后台进行控制,虽然对后台开发来讲是比较容易做到的,但是涉及到一个问题,那就是数据库压力. 因为要控制显示,所以会比较频繁的从数据库中来回调用. 现在的js功能越来越强, ...
- JS 无限长form表单提交
1 简介 开发时候,总会遇到根据后台传的变量{组件数}来动态渲染组件的情况,比如后台传命令要绑定10个父子关系,则前台展开十个input组件,后台决定绑定5个福字关系,则前台展开5个input组件.再 ...
- 按钮js跳转到非表单提交页
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 原生JS 表单提交验证器
转载:http://www.cnblogs.com/sicd/p/4613628.html 一.前言 最近在开发一个新项目,需要做登陆等一系列的表单提交页面.在经过“缜密”的讨论后,我们决定 不用外部 ...
- springmvc下js控制表单提交(表单提交前检验,提交后获取json返回值)
这个问题我搞了四天,终于搞懂.因为对js很不熟悉.郁闷的是后台代码出错总可以设置断点调试,前端js代码出错只能通过浏览器提供一些运行数据来分析,很不习惯. 首先说下逻辑:这是一个注册功能,我希望,注册 ...
- 原生js制作表单验证,基本的表单验证方法
表单验证是web前端最常见的功能之一,也属于前端开发的基本功.自己完成一个表单验证的开发,也有助于加深对字符串处理和正则表达式的理解. 基本的表单验证包括如:字母验证.数字验证.字母和数字验证.汉字验 ...
- AngularJS 表单提交后显示验证信息与失焦后显示验证信息
虽然说AngularJS的实时表单验证非常有用,非常高效方便,但是当用户还没有完成输入时便弹出一个错误提示,这种体验是非常糟糕的. 正常的表单验证逻辑应该是在用户提交表单后或完成当前字段中的输入后,再 ...
随机推荐
- Python学习之旅(二十九)
Python基础知识(28):常用第三方模块 一.Pillow PIL(Python Imaging Library):提供了强大的图像操作功能,可以通过简单的代码完成复杂的图像处理,是Python平 ...
- JAVAMail邮件服务器
SMTP:simple mail transfer protocol(简单邮件传输协议),是internate传输mail的基本协议,也是TCP/IP协议组成员, POP3:邮局协议第三版,是inte ...
- ERP项目实施记录10
好久没有更新,因为进度一直拖着.已经实施了20个月了,很多东西没有开发出来.原因多方面的,虽然在此打算吐槽一下开发公司,但其实很大部分责任还是在我们自己. 不多说了,看图:
- linux ---部署django项目篇
uWSGI + nginx+ django + virtualenv + supervisor发布web服务器 项目部署步骤 1.项目准备阶段 1.准备项目代码,从本地拷贝 2.将项目上传到linux ...
- [dpdk][hotplug] DPDK网卡设备热插拔
dpdk pci网卡设备的热插拔. 样例程序如下: ... ... static int driverctl(char* pci) { int pid; pid = fork(); ) { execl ...
- Restsharp常见格式的发送分析
1.传递匿名对象JSON格式 public string Pay(string apisecret, string apikey, string token) { try { string url = ...
- asp.net mvc easyui tree
1.html页面代码: <div class="easyui-panel" style="padding:5px" id="powerTree& ...
- Navicat 远程连接 Oracle11g 数据库报错 No listener 的问题
1.首先确认已经启动 OracleOraDb11g_home1TNSListener 服务时,仍无法连接: 2.进入计算机系统属性中查看 Oracle 服务端计算机的全名: 3.进入 Orac ...
- here文档 here doc EOF重定向
here文档 here doc EOF重定向 http://www.cnblogs.com/xiangzi888/archive/2012/03/24/2415077.html 在shell脚本程序 ...
- java开发定时任务执行时间
定时任务执行时间配置详解 Seconds Minutes Hours Day-of-month Month Day-of-Week Year 秒 分 时 天 ...