js阻止提交表单(post)
在注册页面,我们经常要用到页面验证,验证到不符合要求的数据就阻止提交到服务器,如下
<script type="text/javascript">
function Check() {
var phoneNumber = $.trim($("#PhoneNumber").val());
var isMobile=/^1?(3|5|7|8)\d{9}$/;
if (isMobile.test(phoneNumber) == false) {
alert("电话号码格式错误");
$("#PhoneNumber").focus();
return;
}
}
</script>
<input type="submit" name="addNewAddress" value="保存收货地址" class="saveNewAddress" onclick="Check()"/>
效果:这样看起来貌似没有问题,但是这样往往能够提示判断出错误的手机号码,但是却不能阻止它提交到后台;
原因:其实是check()只是一个验证手机号的动作,并没有阻止提交的动作。提交表单时先执行check()这个函数再post,post的时候会执行页面判断(判断一个值,具体是什么值需要了解整个post的过程,这里我也不太清楚)如果是true,就post页面,如果是false,就不执行任何动作。
解决方法:在check()方法里执行验证之后,如果验证符合要求就返回true,否则返回false;在调用方法的地方加上“return 方法名”(这里就是return Check(););完整的代码如下:
<script type="text/javascript">
function Check() {
var phoneNumber = $.trim($("#PhoneNumber").val());
var isMobile=/^1?(3|5|7|8)\d{9}$/;
if (isMobile.test(phoneNumber) == false) {
alert("电话号码格式错误");
$("#PhoneNumber").focus();
return false;
}
return true;
}
</script>
<input type="submit" name="addNewAddress" value="保存收货地址" class="saveNewAddress" onclick="return Check();"/>
js阻止提交表单(post)的更多相关文章
- JS、jqueryie6浏览器下使用js无法提交表单的解决办法
-----------------------JS.jqueryie6浏览器下使用js无法提交表单的解决办法---------------------------------------------- ...
- js阻止form表单重复提交
防止表单重复提交的方法总体来说有两种,一种是在js中阻止重复提交:另一种是在后台利用token令牌实现,大致思路是生成一个随机码放到session和form表单的隐藏输入框中,提交表单时两者对比,表单 ...
- js 回车提交表单的实现
我们有时候希望回车键敲在文本框(input element)里来提交表单(form),但有时候又不希望如此.比如搜索行为,希望输入完关键词之后直接按回车键立即提交表单,而有些复杂表单,可能要避免回车键 ...
- jQuery.Form.js 异步提交表单使用总结
jQuery.Form.js 是一个用于使用jQuery异步提交表单的插件,它使用方法简单,支持同步和异步两种方式提交. 第一步:引入jQuery与jQuery.Form.js <script ...
- JS post提交表单
js post方式提交表单有两种办法,1:AJAX提交 2:在JS里拼出一个form,然后submit 第二种办法的代码 //这个主要是解决给password MD5 var email = 'ema ...
- 转 js调用提交表单。
今天做网银支付的时候,需要做到点击支付的时候提交订单,然后新窗口打开支付界面. 思路1:window.open(''),这个直接被pass了,因为银行的服务一般都是需要post数据的.就算是可以用ge ...
- JS:JS判断提交表单不能为空等验证
这段代码在<form>中有οnsubmit="return on_submit()",如果 onsubmit ()返回 fasle,表单的元素就不会提交,即action ...
- js 回车提交表单
一.整个页面用一个回车提交事件: <input type="button" value="回车提交" id="auto" onclic ...
- js 判断提交表单
<SCRIPT language=javascript> function check_book() { if(document.form1.Username.value=="& ...
随机推荐
- Bash脚本15分钟进阶指导
首先声明这是网上摘来的.这里的技术技巧最初是来自谷歌的“Testing on the Toilet” (TOTT).这里是一个修订和扩增版本. 脚本安全 我的所有bash脚本都以下面几句为开场白: # ...
- poi批量导入excel文件
package com.practice.util; import java.io.File; import java.io.FileInputStream; import java.io.FileN ...
- maven安装配置
1.到官网下载maven http://maven.apache.org/download.html 2.解压后解压到任意文件路径 本地解压的位置:C:\soft\apache-maven-3.3.9 ...
- NodeJS 错误处理最佳实践
NodeJS的错误处理让人痛苦,在很长的一段时间里,大量的错误被放任不管.但是要想建立一个健壮的Node.js程序就必须正确的处理这些错误,而且这并不难学.如果你实在没有耐心,那就直接绕过长篇大论跳到 ...
- python 二叉树实现带括号的四则运算(自学的孩子好可怜,不对的地方请轻责)
#!/usr/bin/python #* encoding=utf-8 s = "20-5*(0+1)*5^(6-2^2)" c = 0 top = [0,s[c],0] op = ...
- Android菜鸟成长记14 -- AsnyTask
本篇随笔将讲解一下Android的多线程的知识,以及如何通过AsyncTask机制来实现线程之间的通信. 一.Android当中的多线程 在Android当中,当一个应用程序的组件启动的时候,并且没有 ...
- IBatis 简易框架搭建
1.练习框架 ibatis主要dll介绍 IBatisNet.Common.dll 由DataAccess和DataMapper组成的共享程序集 IBatisNet.Common.Logging.Lo ...
- 检测Java程序运行时间的2种方法(高精度的时间[纳秒]与低精度的时间[毫秒])
第一种是以毫秒为单位计算的. 代码如下: long startTime=System.currentTimeMillis(); //获取开始时间 doSomeThing(); //测试的代码段 lon ...
- WCF在tcp通道下启用httpget
关于tcp通道下,启用httpget,必须启用一个http的基地址,如果要启用元数据交换,host中必须开启服务描述. //01 create host Uri tcpBaseAddress = ne ...
- Tcc学习笔记(二) 安装和配置
1.下载和编译 去repo.or.cz/tinycc.git下载最新的snapshot压缩包, 或者用git命令下载: git clone git://repo.or.cz/tinycc.git . ...