【 js 片段 】如何组织表单的默认提交?【亲测有效】
最近做的一个项目,我分到的部分有表单验证。点击了提交按钮,但我并不想让他跳转页面去提交。于是经过各种百度,各种 stackoverflow,各种抱大神腿之后,有了以下解决办法:
重点就是阻止 form 的 submit() 默认提交行为,一种方法用 return false,另一种是 event.preventDefault(); 两种方法都可以,但却又有不同,要根据你的实际情况选择。有什么不同呢,看完文章就告诉你。
首先 html 里 code 如下:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>form</title>
</head>
<body>
<form action="www.baidu.com" method="post" id="myForm" novalidate> //novalidate是为了防止 HTML5 表单执行原生的校验,从而只执行你自定义的验证。
<input type="name" id="name" required>
<input type="submit" value="submit">
</form> <script src="scripts/jquery.min.js"></script>
<script src="scripts/demo.js"></script>
</body>
</html>
js 里 code 如下:
$('#myForm').submit(function(event){
if (!$('#name').val()) {
alert('name 不能为空');
event.preventDefault();
};
})
当表格 name 的值为空时,弹出提示框,并阻止跳转。代码演示:http://plnkr.co/edit/CZ9TYOMKXheCvq7fMQ7f?p=preview
当然你也可以用 return false 来阻止,代码如下:
$('#myForm').submit(function(event){
if (!$('#name').val()) {
alert('name 不能为空');
return false;
};
})
代码演示:http://plnkr.co/edit/CZ9TYOMKXheCvq7fMQ7f?p=preview
如果你用的是什么 angularjs 框架之类的,只需要往这个代码上加 ng-controller 、ng-app 之类的就可以了。
最后说一下 return false 和 event.preventDedault() 的区别:如果你在阻止了表单的提交行为之后,还想干点别的,那就用 event.preventDefault(),比如给空 input 加一个红色边框提醒用户之类的,因为 return false 之后的代码不会执行。如果什么也不想干,那两者就没有区别了,由你任性!
红色边框代码:
$('#myForm').submit(function(event){
if (!$('#name').val()) {
alert('name 不能为空');
event.preventDefault();
$('#name').css('border-color','red');
}
})
ps:event.preventDefault();是个什么鬼?http://www.w3school.com.cn/jsref/event_preventdefault.asp
看什么?!评论关注啊!
【 js 片段 】如何组织表单的默认提交?【亲测有效】的更多相关文章
- 防止表单提交时刷新页面-阻止form表单的默认提交行为
最近在写 ajax 提交的时候遇到一个问题,在执行 ajax 提交之后,浏览器页面自动刷新了,主要是没有 由于form 表单的默认提交行为.一下是几种阻止 form 表单默认提交行为的方式. 1.使用 ...
- 工作中碰到的js问题(disabled表单元素不能提交到服务器)
今天碰到一个奇葩的问题,asp页面表单提交后,有一个文本框<input type="text" name="phone" id="phone&q ...
- HTML form表单的默认提交方式
默认为Get,亲测.. key值为控件name属性值,如果没有 url中就没有此值 aspx中默认Form表单提交方式为post
- form表单的默认提交行为
一 如果<form></form>表单中只有一个<input type="text"/>,则使文本框获取焦点,并单击回车,form会自动提交. ...
- JS高程3:表单脚本
HTML和CSS对表单的操作还是比较乏力的,在表单操作中,JS势必会使用到. 基础知识 文本框 选择框 序列化 富文本编辑器 基础知识 HTMLFormElement接口可以创建或者修改<for ...
- js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式
js replace 全局替换 js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...
- js实现无刷新表单提交文件,将ajax请求转换为form请求方法
最近在做项目的时候遇到一个需要上传文件的需求,因为ajax请求是无法上传二进制文件流的,所以只能用form表单提交,而form提交有一个问题就是会使页面刷新,本文解决了form表单提交文件时页面刷新的 ...
- form表单 无法提交js动态添加的表单元素问题。。
第一种情况, 这种情况js动态添加的表单元素是不能提交到服务器端的 <table> <form method="post" action=" url ...
- 用JS动态创建登录表单,报了个小错误
后来发现原来是: dvObj.style.border='#Red 1px sold'; 其中的Red多谢了一个‘#’, 但是奇怪的是在chrome和firefox都备有报错,但是在ie中报错了. 各 ...
随机推荐
- Educational Codeforces Round 25 B. Five-In-a-Row
题目链接:http://codeforces.com/contest/825/problem/B B. Five-In-a-Row time limit per test 1 second memor ...
- Centos之文件搜索命令find
find [搜索范围] [搜索条件] #搜索文件 find / -name install.log #避免大范围搜索,会非常耗费系统资源 #find是在系统当中搜索符合条件的文件名.如果需要匹配, 使 ...
- java求三角形面积以及周长---封装
/*时间: 2012-10-08作者: 烟大程序要求: 1.封装一类三角形对象Triangle,该类对象具有三条边的属性, 具有初始化三角形的功能.修改边长的功能.判断三条边能否构成三角形的功能. 求 ...
- day 54 linux 常用指令入门
Linux文件系统结构 Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有“盘(C盘.D盘.E盘)”的概念.已经建立文件系统的硬盘分区被挂载到某一个目录下,用户通过操作目录来 ...
- JavaScript 函数的4种调用方法
JavaScript 函数有 4 种调用方式. 每种方式的不同方式在于 this 的初始化. 作为一个函数调用 function myFunction(a, b) { return a * b; } ...
- Spring Security构建Rest服务-0800-Spring Security图片验证码
验证码逻辑 以前在项目中也做过验证码,生成验证码的代码网上有很多,也有一些第三方的jar包也可以生成漂亮的验证码.验证码逻辑很简单,就是在登录页放一个image标签,src指向一个controller ...
- Android 开发工具类 09_SPUtils
SharedPreferences 辅助类: 1.保存在手机里面的文件名: 2.保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法: 3.得到保存数据的方法,我们根据默认值 ...
- java 算法 - 冒泡排序
冒泡排序: 冒泡排序是专门针对已有的一部分已经排序的数据进行排序的一种排序算法.假如你的数据中只有两个数据输乱序的,那么冒泡排序就是最快的.这种算法的核心思想就是扫描数据清单,找到乱序中相邻的两个数据 ...
- java aop做一个接口耗时的计算
看代码: @Aspect @Component public class TimeCostAspect { private static Logger logger = LoggerFactory.g ...
- 自学C Primer Plus时还没想明白的问题
2016年11月24日 1. 计算机中两个浮点数怎样进行加法运算.2. 为什么计算机在计算时存在损失精度的可能3. 无符号数和有符号数的运算是怎样的4. printf中使用格式控制符的截断问题,比如% ...