1.input回车事件不执行导致页面刷新

场景:在文本框中输入关键字按回车,页面自动刷新了

<form name="keywordForm" method="post" action="">
<p id="profile_nav">
<label for="profile"> 关键字搜索: </label>
<input style="width:80; height:20" type="text" name="keyword" onkeypress="searchKeywordKeyboard(event)" />
<input type="button" value="搜索" onClick="searchKeyword()">
</p>
</form>

解决方法1:

  一个表单下,如果只有一个文本框时,按下回车将会触发表单的提交事件。  既然是只有一个文本框才会出问题,那么可以加一个隐藏的文本框

解决方法2:(推荐)

  <form name="keywordForm" method="post" action="" onsubmit="return false;">  就是在表单 form 后面加上一个 onsubmit 事件,返回 false,来阻止 form 提交。

解决方法3:(不推荐)

document.onkeydown=function(e){
var e = e || event;
var currKey = e.keyCode || e.which || e.charCode;//支持IE,FireFox
if (currKey == ) {
return false;
}
}

解决方法4:

<input type="text"  onkeydown="return ClearSubmit(event)" />
function ClearSubmit(e) {
if (e.keyCode == ) {
return false;
}
}

2.表单校验之datatype

  凡要验证格式的元素均需绑定datatype属性,datatype可选值内置有10类,用来指定不同的验证格式。

  如果还不能满足您的验证需求,可传入自定义datatype,可绑定的附加属性有:datatype、nullmsg、sucmsg、errormsg、ignore、recheck、tip、altercss、ajaxurl 和 plugin等.

  内置基本的datatype类型有: * | *6-16 | n | n6-16 | s | s6-18 | p | m | e | url

  5.2版本之后,datatype支持规则累加或单选。用","分隔表示规则累加;用"|"分隔表示规则多选一,即只要符合其中一个规则就可以通过验证,绑定的规则会依次验证,只要验证通过,后面的规则就会忽略不再比较。

  5.2.1版本之后,datatype支持:直接绑定正则:如可用这样写datatype="/\w{3,6}/i",要求是3到6位的字母,不区分大小写;

  

  http://deerchao.net/tutorials/regex/regex.htm#lookaround

  参考链接:http://blog.csdn.net/zhangdaiscott/article/details/26375043

3.html5 原生表单验证

  html5 原生表单验证 + ajax 提交 无需任何第三方验证框架 通过pattern 和 oninvalid 属性统一验证表单 。

  oninvalid:提交的input元素的值为无效值时(这里是正则验证失败),触发oninvalid事件。oninvalid属于Form 事件。

  setCustomValidity():这个是HTML5内置的JS方法,用来自定义提示信息

  pattern 属性规定用于验证输入字段的正则表达式。

  注释:pattern 属性适用于以下 <input> 类型:text, search, url, telephone, email 以及 password 。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form action="#" method="post" onsubmit="return false">
<input type="text" name="mobile" id="mobile" placeholder="请输入手机号码"
pattern="^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$" oninvalid="validateIt(this,'手机号码格式错误')" oninput="validateIt(this,'手机号码格式错误')" required/> <input type="text" name="age" id="address" placeholder="请输入地址"
pattern="^.{5,200}$" oninvalid="validateIt(this,'地址不符合规范')" oninput="validateIt(this,'地址不符合规范')" required/>
<button type="submit" id="submit" >提交</button>
</form> </body>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script>
function validateIt(inputelement,errMsg){
if(inputelement.validity.patternMismatch){
inputelement.setCustomValidity(errMsg);
}else{
inputelement.setCustomValidity(''); //输入内容符合验证条件
}
return true;
}
$(function() {
if ($("*:invalid") == 0) { // 如果验证都通过
$("#submit").submit(function() {
$.ajax({
type: "post",
url: "你的地址",
data: $("form").serialize(),
async: true,
success: function(data) {
alert(data);
},
dataType: "json" // json 格式的返回值
});
}); }
});
</script>

  参考:

  http://blog.csdn.net/xiawu1990/article/details/49893473

  http://blog.csdn.net/qq_21707807/article/details/53035977

  http://blog.csdn.net/teresa502/article/details/8524184

Html input 常见问题的更多相关文章

  1. 移动端 常见问题整理 iOS下的 Fixed + Input 调用键盘的时候fixed无效问题解决方案

    使用iScroll时,input等不能输入内容的解决方法 <script> function allowFormsInIscroll(){ [].slice.call(document.q ...

  2. 移动端input“输入框”常见问题及解决方法

    转自 https://www.cnblogs.com/ljx20180807/p/9837748.html 1. ios中,输入框获得焦点时,页面输入框被遮盖,定位的元素位置错乱: 当页input存在 ...

  3. Windows Server 2008 R2 添加且制成“NFS服务器”角色后与Unix客户端匿名访问常见问题

    在复杂的主机与网络环境中,我们可能会接触到多种主机与操作系统,配合Windows Server 2008 R2的原生“NFS服务器”功能可以让这样的复杂操作系统更方便应用. 然而面对网络上众多的帮助指 ...

  4. H5项目常见问题汇总及解决方案(果断复制粘贴,不解释)

    H5项目常见问题及注意事项 Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 //一.HTML页面结构 <meta name="viewport" co ...

  5. H5项目常见问题及注意事项

    Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 //一.HTML页面结构 <meta name="viewport" content="wi ...

  6. h5移动端常见问题

    meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 1 <meta name="viewport" content="width=device-w ...

  7. web测试安全性常见问题

    web测试安全性常见问题                  一.             登录账号明文传输 1.  问题一:登录账号密码或者修改密码明文传输 现象:目前物流对内的java系统基本上都是 ...

  8. H5项目常见问题

    转自 https://github.com/FrontEndZQ/HTML5-FAQH5项目常见问题及注意事项 Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面//一.HTML页 ...

  9. H5项目常见问题汇总及解决方案

    H5项目常见问题汇总及解决方案 H5   2015-12-06 10:15:33 发布 您的评价:       4.5   收藏     4收藏 H5项目常见问题及注意事项 Meta基础知识: H5页 ...

随机推荐

  1. python Bootstarp框架和inconfont、font-awesome使用

    http://www.bootcss.com/ http://www.runoob.com/bootstrap/bootstrap-panels.html  查找基本的没问题 https://www. ...

  2. Nginx 学习笔记(九)申请Let's Encrypt通配符HTTPS证书

    Let's Encrypt 宣布 ACME v2 正式支持通配符证书,并将继续清除 Web 上采用 HTTPS 的障碍,让每个网站轻松获取管理证书.消息一出,马上就有热心用户分享出了 Let's En ...

  3. 再次回归 Spark-- 转

    原文地址 combineByKey 三个参数 val scores = sc.parallelize(Array(("jake",80.0),("jake",9 ...

  4. 函数的作用域、global与nonlocal

    global 表示不再使用局部局部作用域中的内容,而是改用全局作用域中的变量 a = 100 def func(): global a # 表示不再局部创建这个变量,而是直接使用这个全局的a a = ...

  5. thinkcmf 相关

    后台登录,暂停关掉登录验证码: /Volumes/macHD2/myCode/wwwroot/app/admin/controller/PublicController.php $captcha = ...

  6. Vue.Draggable/SortableJS 的排序功能,在VUE中的使用

    此插件git: https://github.com/SortableJS/Vue.Draggable 基于Sortable.js http://www.cnblogs.com/xiangsj/p/6 ...

  7. SQL Server进阶(八)查询——开窗函数、四大排名函数、透视数据、逆透视数据

    概述 ROW_NUMBER() OVER(PARTITION BY CustId ORDER BY ID DESC) https://www.jb51.net/article/75533.htm 开窗 ...

  8. JSON CSRF新姿势

    以前做渗透测试,遇到过很多次POST数据为JSON数据的CSRF,一直没有搞定,最近发现一个新姿势, ​​​本文作者:Mannix@安全文库 微信公众号:安全文库 测试的时候,当应用程序验证了Cont ...

  9. C# test

    //测试对象集合序列化 public void jsonTest() { List<moduleEntity> list = new List<moduleEntity>(); ...

  10. Linux 下杀毒可用工具 clamav

    clamav 杀毒工具:Linux下可用的杀毒工具: 下载地址: 最新 包 0.101 官网下载地址:http://www.clamav.net/downloads最新包地址: https://cla ...