最近做的一个项目,我分到的部分有表单验证。点击了提交按钮,但我并不想让他跳转页面去提交。于是经过各种百度,各种 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 片段 】如何组织表单的默认提交?【亲测有效】的更多相关文章

  1. 防止表单提交时刷新页面-阻止form表单的默认提交行为

    最近在写 ajax 提交的时候遇到一个问题,在执行 ajax 提交之后,浏览器页面自动刷新了,主要是没有 由于form 表单的默认提交行为.一下是几种阻止 form 表单默认提交行为的方式. 1.使用 ...

  2. 工作中碰到的js问题(disabled表单元素不能提交到服务器)

    今天碰到一个奇葩的问题,asp页面表单提交后,有一个文本框<input type="text" name="phone" id="phone&q ...

  3. HTML form表单的默认提交方式

    默认为Get,亲测.. key值为控件name属性值,如果没有 url中就没有此值 aspx中默认Form表单提交方式为post

  4. form表单的默认提交行为

    一 如果<form></form>表单中只有一个<input type="text"/>,则使文本框获取焦点,并单击回车,form会自动提交. ...

  5. JS高程3:表单脚本

    HTML和CSS对表单的操作还是比较乏力的,在表单操作中,JS势必会使用到. 基础知识 文本框 选择框 序列化 富文本编辑器 基础知识 HTMLFormElement接口可以创建或者修改<for ...

  6. js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式

    js replace 全局替换   js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...

  7. js实现无刷新表单提交文件,将ajax请求转换为form请求方法

    最近在做项目的时候遇到一个需要上传文件的需求,因为ajax请求是无法上传二进制文件流的,所以只能用form表单提交,而form提交有一个问题就是会使页面刷新,本文解决了form表单提交文件时页面刷新的 ...

  8. form表单 无法提交js动态添加的表单元素问题。。

    第一种情况, 这种情况js动态添加的表单元素是不能提交到服务器端的 <table> <form method="post" action=" url   ...

  9. 用JS动态创建登录表单,报了个小错误

    后来发现原来是: dvObj.style.border='#Red 1px sold'; 其中的Red多谢了一个‘#’, 但是奇怪的是在chrome和firefox都备有报错,但是在ie中报错了. 各 ...

随机推荐

  1. Python(文件上传)

    day26 通过socket上传文件. post_client.py import socket import os sk = socket.socket() print(sk) address = ...

  2. hdoj2604 Queuing(矩阵快速幂)

    此题如果直接利用递推关系,处理不好会超内存的. 首先找出递推关系式,先给出递推关系式:( L )=( L - 1 ) + ( L - 3 ) + ( L - 4 ):可以先尝试推导一下,推不出来再看下 ...

  3. include与file_get_contents区别

    参考:http://www.cnblogs.com/bgwan/archive/2013/03/13/2957215.html 一,先来说file_get_contents         这个函数就 ...

  4. Python小白学习之路(十六)—【内置函数一】

    将68个内置函数按照其功能分为了10类,分别是: 数学运算(7个) abs()   divmod()  max()  min()  pow()  round()  sum() 类型转换(24个) bo ...

  5. 【BZOJ2082】【POI2010】Divine divisor 假的pollard-rho

    题目大意:给你$m$个数$a_i$,定义$n=\Pi_{i=1}^{m}a_i$.将$n$分解质因数为$\Pi p_i^{k_i} $,$p_i$是质数.请输出$2^{max(k_i)}-1$,以及存 ...

  6. Linux CentOS7系统中ssh的用法

    大家都知道,公司买上服务器,不可能实时在线操作虚拟机,也没有那个时间和精力登录到公司的云服务商官网进行操作,一来不安全,二来也效率不高. 如果是购买的虚拟主机,你可以使用ftp进行本地程序文件传输和从 ...

  7. Hadoop简介与伪分布式搭建—DAY01

    一.  Hadoop的一些相关概念及思想 1.hadoop的核心组成: (1)hdfs分布式文件系统 (2)mapreduce 分布式批处理运算框架 (3)yarn 分布式资源调度系统 2.hadoo ...

  8. python 批量模块导入(笔记)

    环境:python3.6 目的:根据列表['os', 'sys', 're']中的字符串导入对应模块 from importlib import import_module modules = ['o ...

  9. Java之集合(十二)TreeMap

    转载请注明源出处:http://www.cnblogs.com/lighten/p/7411935.html 1.前言 本章介绍Map体系中的TreeMap,顾名思义,这个是一个树结构的Map.Tre ...

  10. Selenium Web自动化 原理

    文章转自 白月黑羽教Python 原理 说到web应用自动化测试,第一选择就是 Selenium 框架. Selenium 是一个 Web 应用的自动化框架. 通过它,我们可以写出自动化程序像人一样( ...