采用HTML5之"data-"机制自由提供数据
周末总是过得很快,又到了跟代码亲密接触的日子,我在北京向各位问好,今天我分享一点关于前端的东西,HTML5之标签"data-*"自定义属性的值传递。
在过去学习JavaScript时,我们可能经常会手动的完成对表单数据的校验,此功能在开发中非常常见,属于通用的功能范畴。今天我就给各位记录其中的一种,就是HTML5的"data-*"机制,它是一种标记语言标签的自定义属性,完全可以依靠这种机制自由地向后台提供各种数据,极其方便,当然,这种自定义属性的值可以通过jQuery提供的data()方法来获取。
前几天在给公司网站更换页面的过程中,我狠幸运的参与了统计模块那块的业务和功能改造,由于我个人比较喜欢写一些由聚合函数存在的业务SQL,因为这类SQL语句大部分都有优化的必要,之前在博客中也分享过自己优化的一些案例,可能不是优化的很彻底,但是速度是上去了。
好了,下面正式来说说HTML5的"data-*"的机制提供数据,并如何获取。因为之前在更换页面的过程中也看到了公司使用"data-*"的机制来输送数据,但是对它的印象不是太深,就没有深究。今天我特意把这种使用"data-*"机制来向后台输送数据的过程学习了一下,感觉这种方式输送数据对于我们Java开发者来说是非常有用的,因为有时候复杂业务的实现就在于数据传输的行不通而导致一种很好的实现思路就此熄灭,这个完全是我个人的感受,因为在以前开发中有多次这种欲达而不达的痛苦经历,如果能够自由灵活的通过各种方式无困难传递各种参数,那么在实现起某些复杂业务就有很多中选择了。
下面是一个表单中定义data-*自定义属性,并如何获取属性的数据值。
<form action="${zxz}/jQueryData/getData" id="dataFrom" method="post">
用户名:<input id="username" data-user-uname="18513032646" name="username" value="">
密码:<input id="password" data-user-pwd="20170724" name="password" value="">
<input type="button" value="提交" onclick="submitFrom()">
</form>
上面代码块中的红色字体就是我在表单项中使用data-*机制定义的自定义属性,并对他们绑定了具体的数据,当然在实际需求中(之前换页面那次)是动态获取的,我现在的需求就是:异步提交表单,在提交过程中动态获取自定义属性的值并以此作为相应表单项的value的值?
<script type="text/javascript">
function submitFrom(){
//获取"data-"机制提供的数据
var name = $("#username").data("userUname"); //data("user-uname")这种写法也是可以的
var pwd = $("#password").data("userPwd");
//alert(name+"##"+pwd);
//将获取的机制数据设置到表单项中并提交到后台
$("#username").val(name);
$("#password").val(pwd);
//提交表单
$("#dataFrom").submit();
}
</script>
从上面的实现过程中不难看出,在使用jQuery提供的data()方法获取"data-*"机制提供的数据时,只需要将"data-"去掉,然后后面的单词使用驼峰式的字符串作为方法参数来获取即可,这是因为JSON Object 的key不能包含”-“。但是说到这儿,我不得我多说点儿,通过早上的各种尝试得出,如果你没有使用驼峰式的方式来获取,也可以使用另外一种方式,直接把"data-"去掉,最后在data()方法中直接把后面剩余的字符串作为参数传入即可获取,但是除此之外其他的写法都应该不行,你只会得到"类型未定义undefined"这样的错误。
jQuery的data()方法,该方法是用来获取data-*自定义属性的值,也可以覆盖或存储data-*属性的值。如果你在方法中传入一个参数则是获取对应"data-*"属性的值,如果是俩个,则覆盖或设置一个新值给对应"data-*"属性。
//获取"data-"机制提供的数据
var name = $("#username").data("userUname"); //data("user-uname")这种写法也是可以的
//更变code的data-*的值
$("#code").data("sysCode","改变验证码");
var code = $("#code").data("sysCode"); //获取到的是改变后的code值
这张图片我是在浏览器中断点跟进的过程图以及它们的值变化验证图,有图有真相。
采用HTML5之"data-"机制自由提供数据的更多相关文章
- Web 前沿——HTML5 Form Data 对象的使用
XMLHttpRequest Level 2 添加了一个新的接口——FormData.利用 FormData 对象,我们可以通过 JavaScript 用一些键值对来模拟一系列表单控件,我们还可以使用 ...
- HTML5 Form Data 对象的使用
HTML5 Form Data 对象的使用 MDN: https://developer.mozilla.org/zh-CN/docs/Web/Guide/Using_FormData_Object ...
- 【翻译】详解HTML5 自定义 Data 属性
原标题:HTML5 Custom Data Attributes (data-*) 你是否曾经使用 class 或 rel 来保存任意的元数据,只为了使你的JavaScript更简单?如果你回答是的, ...
- 脑洞大开之采用HTML5+SignalR2.0(.Net)实现原生Web视频
目录 对SignalR不了解的人可以直接移步下面的目录 SignalR系列目录 前言 - -,我又来了,今天废话不多说,我们直接来实现Web视频聊天. 采用的技术如下: HTML5 WebRTC Si ...
- HTML5应用缓存机制
首先先上一张图: 用360浏览器的用户对这张图应该都是耳熟能详了吧,没错,当网络不通畅时使用360浏览器,便会有这张图弹出来.为什么没有网络还能弹出这一副画面呢?这就关乎HTML5的应用缓存机制了. ...
- Web 前沿——HTML5 Form Data 对象的使用(转)
XMLHttpRequest Level 2 添加了一个新的接口——FormData.利用 FormData 对象,我们可以通过 JavaScript 用一些键值对来模拟一系列表单控件,我们还可以使用 ...
- Web 前沿——HTML5 Form Data 对象的使用
原文地址:http://www.cnblogs.com/lhb25/p/html5-formdata-tutorials.html XMLHttpRequest Level 2 添加了一个新的接口-- ...
- 浅谈HTML5 WebSocket的机制
回想上一章 在上一章<为什么我们须要HTML5 WebSocket>中,我简单的介绍了下WebSocket的前世今生.相信大家已对WebSocket有了初步的了解.那么今天我们继续深入学习 ...
- 【转】Web 前沿——HTML5 Form Data 对象的使用
XMLHttpRequest Level 2 添加了一个新的接口——FormData.利用 FormData 对象,我们可以通过 JavaScript 用一些键值对来模拟一系列表单控件,我们还可以使用 ...
随机推荐
- MySQL存储汉字
之前在网上查找了很多方法,排在前排的都是修改配置文件my.ini的,没有成功,后来找到了一个解决方法: 在建表的时候,在语句后面加上段"engine = innodb default cha ...
- 【WPF】用三角形网格构建三维图形
虽然WPF只能支持部分三维模型,不过从应用功能开发的角度看,也已经够用了(非游戏开发).WPF 的三维图形,说得简单一点,也就两种而已. 1.把二维对象放到三维空间中,这个应该较为好办,像 Image ...
- git使用方法1
1.新建一个“本地仓库” $ git init 2.配置仓库 >告诉git你是谁 git config user.name lnj >告诉git怎么联系你 git config user. ...
- 使用MySQLdb操作Mysql数据库
MySQLdb简介 MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司.在2008年1月16号被Sun公司收购.目前MySQL被广泛地应用在Internet上的中小型网站中.由于 ...
- 转发:Ubuntu软件卸载安装的命令
说明:由于图形化界面方法(如Add/Remove... 和Synaptic Package Manageer)比较简单,所以这里主要总结在终端通过命令行方式进行的软件包安装.卸载和删除的方法. 一.U ...
- Spring学习(13)--- 基于Java类的配置Bean 之 @Configuration & @Bean注解
基于Java配置选项,可以编写大多数的Spring不用配置XML,但有几个基于Java的注释的帮助下解释.从Spring3.0开始支持使用java代码来代替XML来配置Spring,基于Java配置S ...
- 【论文:麦克风阵列增强】Microphone Array Post-Filtering For Non-Stationary Noise Suppression
作者:桂. 时间:2017-06-08 08:01:41 链接:http://www.cnblogs.com/xingshansi/p/6957027.html 原文链接:http://pan.ba ...
- bootstrap之daterangepicker---汉化以及扩展
一.扩展的功能 1.初始化时,会自动创建一个select标签: 2.当改变select值时,日期也会自动改变,并且会调用apply按钮的click事件 3.点击此处进行预览 4.github地址:ht ...
- asp.net(c#) 将dbf转换为xls或wps,并将数据的列名改成中文;并判断本机是否安装office2003,2007和wps2007,2010
using Microsoft.Office.Interop.Excel;//转换为excel时,需要引用此命名空间 using ET;//转换为wps时,需要引用此命名空间using KSO;//转 ...
- JAVA下JSON的类型输出及使用
JSON类型的输出: import java.util.ArrayList; import java.util.HashMap; import net.sf.json.JSONArray; impor ...