Web开发中常常须要操作表单,form表单元素有select、checkbox、radio、textarea、button、file、text、hidden、password等。

当中checkbox和radio的读写值操作比較多变,checkbox和radio常常常使用在一个分组里。实现多选或者单选。

jQuery提供了利用表单选择器我们能够极其方便地获取表单的某个或某类型的元素。

选择器 返回 演示样例
:input 集合元素 $(“:input”)选取全部,,和元素。
:text 单行文本框集合 $(“:text”)选取全部的单行文本框。
:password 密码框集合 $(“:password”)选取全部的密码框。
:radio 单行文本框集合 $(“:radio”)选取全部的单选框。
:checkbox 复选框集合 $(“:checkbox”)选取全部的复选框。
:submit 提交按钮集合 $(“:submit”)选取全部的提交按钮。
:image 图片按钮集合 $(“:image”)选取全部的图片按钮。
:reset 重置按钮集合 $(“:reset”)选取全部的重置按钮。
:button 按钮集合 $(“:button”)选取全部的按钮。

:file 上传域集合 $(“:file”)选取全部的上传域。
:hidden 不可见元素集合 $(“:hidden”)选取全部的不可见元素。

以下介绍select、checkbox和radio的使用方法。

select

select元素内容例如以下

<select id="select">
<option value="0">北京</option>
<option value="1">上海</option>
<option value="2">武汉</option>
<option value="3">南京</option>
<option value="4">广州</option>
<option value="5" selected="selected">深圳</option>
</select>

对select的操作

//获取select当前选中项的值
$('#select').val(); //获取select当前选中项的文本
$('#select').children('option:selected').text(); //设置select选中值为3的option
$('#select').val('3'); //设置select选中文本为武汉的option
$('#select').children('option:contains(武汉)').attr('selected', 'selected');

checkbox

<div>
<fieldset id="checkboxGroup">
<legend>选择最喜欢的城市</legend>
<div><input type="checkbox" name="city" value="北京" /><span>北京</span></div>
<div><input type="checkbox" name="city" value="上海" /><span>上海</span></div>
<div><input type="checkbox" name="city" value="南京" /><span>南京</span></div>
<div><input type="checkbox" name="city" value="深圳" /><span>深圳</span></div>
<div><input type="checkbox" name="city" value="广州" /><span>广州</span></div>
<div><input type="checkbox" name="city" value="武汉" /><span>武汉</span></div>
</fieldset>
</div>
<div style="margin-top:20px;">
<button id="btnCheckbox1">获取选择的checkbox</button>
<button id="btnCheckbox2">选择深圳和广州</button>
<button id="btnCheckbox3">全选</button>
<button id="btnCheckbox4">全不选</button>
<button id="btnCheckbox5">反选</button>
</div>
//获取选择的checkbox值
$('#btnCheckbox1').click(function(){
var values = [];
$('#checkboxGroup').find(':checkbox:checked').each(function(){
values.push($(this).val());
}); alert(values.join(','));
}); //选择深圳和广州
$('#btnCheckbox2').click(function(){
var $group = $('#checkboxGroup'); $group.find(':checkbox').each(function(){
var $this = $(this), val = $this.val();
if(val === '深圳' || val === '广州'){
$this.prop('checked', true);
}else{
$this.prop('checked', false);
}
});
}); //全选
$('#btnCheckbox3').click(function(){
var $group = $('#checkboxGroup');
$group.find(':checkbox').prop('checked', true);
}); //全不选
$('#btnCheckbox4').click(function(){
var $group = $('#checkboxGroup');
$group.find(':checkbox').prop('checked', false);
}); //反选
$('#btnCheckbox5').click(function(){
var $group = $('#checkboxGroup');
$group.find(':checkbox').each(function(){
var $this = $(this);
$this.prop('checked', !$this.prop('checked'));
});
});

radio

<div>
<fieldset id="radioGroup">
<legend>选择最喜欢的城市</legend>
<div><input type="radio" name="city" value="北京" /><span>北京</span></div>
<div><input type="radio" name="city" value="上海" /><span>上海</span></div>
<div><input type="radio" name="city" value="南京" /><span>南京</span></div>
<div><input type="radio" name="city" value="深圳" /><span>深圳</span></div>
<div><input type="radio" name="city" value="广州" /><span>广州</span></div>
<div><input type="radio" name="city" value="武汉" /><span>武汉</span></div>
</fieldset>
</div>
<div style="margin-top:20px;">
<button id="btnRadio1">获取选择的radio</button>
<button id="btnRadio2">选择上海</button>
</div>
//获取当前选择的radio值
$('#btnRadio1').click(function(){
var group = $('#radioGroup'),
value = group.find(':radio:checked').val();
alert(value);
}); //选择上海
$('#btnRadio2').click(function(){
$('#radioGroup').find(':radio[value="上海"]').prop('checked', true);
});

form

jQuery提供了serialize()和serializeArray()获取form表单元素的值,serialize()把获取的值拼接成字符串,serializeArray()返回数组。

<form id="form">
<div>姓名:<input type="text" name="name" /></div>
<div>年龄:<input type="text" name="age" /></div>
<div>
性别:
<select name="sex">
<option value="男">男</option>
<option value="女">女</option>
<option value="保密" selected="selected">保密</option>
</select>
</div>
<fieldset>
<legend>最喜欢的城市</legend>
<div><input type="radio" name="city" value="广州" /><span>广州</span></div>
<div><input type="radio" name="city" value="深圳" /><span>深圳</span></div>
<div><input type="radio" name="city" value="上海" checked="checked" /><span>上海</span></div>
</fieldset>
<fieldset>
<legend>喜欢的运动</legend>
<div><input type="checkbox" name="sports" value="足球" /><span>足球</span></div>
<div><input type="checkbox" name="sports" value="篮球" /><span>篮球</span></div>
<div><input type="checkbox" name="sports" value="羽毛球" /><span>羽毛球</span></div>
<div><input type="checkbox" name="sports" value="乒乓球" /><span>乒乓球</span></div>
</fieldset>
</form>
<div style="margin-top:20px;">
<button id="btnSubmit">提交</button>
<button id="btnReset">重置</button>
<button id="btnFormValue">获取form的值</button>
</div>
//提交
$('#btnSubmit').click(function(){
$('#form').submit();
}); //重置
$('#btnReset').click(function(){
//因为jQuery没有提供reset方法,仅仅能用form原生的reset方法。
$('#form').get(0).reset();
}); //获取form的值
$('#btnFormValue').click(function(){
alert(decodeURIComponent($('#form').serialize()));
});

jQuery操作Form表单元素的更多相关文章

  1. 【jQuery】form表单元素序列化为json对象

    序列化form表单元素为json对象: <!Doctype html> <html xmlns=http://www.w3.org/1999/xhtml> <head&g ...

  2. jQuery控制form表单元素聚焦

      CreateTime--2017年5月28日08:57:16Author:Marydon jQuery使form表单的第一个文本框聚焦 /** * 使form表单的第一个文本框聚焦 */ func ...

  3. Jquery学习笔记:操作form表单元素之二(复选框和单选框)

    在上面文章的基础上,我们介绍如何操作表单元素中的 复选框和单选框. 一.复选框 <label> <input type="checkbox" id="i ...

  4. Jquery操作常用表单元素

    由于对前端的东西不是很熟练,导致jquery操作表单的东西总是忘记,每次用都要查一下,效率低下,记录下来,以便下次使用. CheckBox checkbox改变事件 $('#IsAllSearch') ...

  5. 将form表单元素的值序列化成对象

    /**jQuery * 将form表单元素的值序列化成对象 * @returns object */ var serializeObject = function(form) { var o = {} ...

  6. 第83天:jQuery中操作form表单

    操作form表单 1. 属性操作 设置属性: // 第一个参数表示:要设置的属性名称 // 第二个参数表示:该属性名称对应的值 $(selector).attr(“title”, “传智播客”); 获 ...

  7. form表单元素的值序列化成对象

    /** * 将form表单元素的值序列化成对象 * param: form jquery form对象 */ var serializeObject = function(form) { var o ...

  8. jquery序列化form表单使用ajax提交后处理返回的json数据

    1.返回json字符串: /** 将一个字符串输出到浏览器 */ protected void writeJson(String json) { PrintWriter pw = null; try ...

  9. jQuery实现form表单基于ajax无刷新提交方法详解

    本文实例讲述了jQuery实现form表单基于ajax无刷新提交方法.分享给大家供大家参考,具体如下: 首先,新建Login.html页面: <!DOCTYPE html PUBLIC &quo ...

随机推荐

  1. 区间DP入门

    所为区间DP,主要是把一个大区间拆分成几个小区间,先求小区间的最优值,然后合并起来求大区间的最优值. 区间DP最关键的就是满足最优子结构以及无后效性!! 例如像是石子合并和括号匹配这两类比较经典的模型 ...

  2. centos7 firewalld日常使用

    若生产中使用有docker,建议不要使用firewalld,改用iptables,用firewalld坑很多,暂时还未找到解决办法,在此做下记录: 说明:若加参数permanent为永久添加即添加至z ...

  3. Python 函数的初识

    1.函数的初识 函数的作用:以功能为导向 减少代码重复 # 函数试编程 # 函数以功能(完成一件事)为导向,登录 注册, # 一个函数就是一个功能,一个函数只能写一个功能 # 何时需要 何时调用,随调 ...

  4. PTA 02-线性结构3 Reversing Linked List (25分)

    题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/664 5-2 Reversing Linked List   (25分) Given a ...

  5. CodeForces - 592D Super M 题解

    题目大意: 一棵树 n个点 有m个点被标记 求经过所有被标记的点的最短路径的长度以及起点(如有多条输出编号最小的起点). 思路: 1.当且仅当一个点本身或其子树中有点被标记时该点在最短的路径上因此,可 ...

  6. 什么样的经历,才能领悟成为架构师? >>>

    什么样的经历,才能领悟成为架构师? >>> 本文主要分析 SpringBoot 的启动过程. SpringBoot的版本为:2.1.0 release,最新版本. 一.时序图 还是老 ...

  7. 【概率dp】D. Card Collector

    https://www.bnuoj.com/v3/contest_show.php?cid=9147#problem/D [题意] 为了集齐n张卡片,必须要买多少袋零食?题目给定每种卡片出现在零食中的 ...

  8. 【数学】codeforces C. Maximal GCD

    http://codeforces.com/contest/803/problem/C [题意] 给定两个数n,k(1 ≤ n, k ≤ 10^10) 要你输出k个数,满足以下条件: ①这k个数之和等 ...

  9. 任意两点间最短距离floyd-warshall ---- POJ 2139 Six Degrees of Cowvin Bacon

    floyd-warshall算法 通过dp思想 求任意两点之间最短距离 重复利用数组实现方式dist[i][j] i - j的最短距离 for(int k = 1; k <= N; k++) f ...

  10. ESI+varnish页面片段缓存

    对于片段缓存,业界有成熟的解决方案,还有一个所谓的W3C标准:ESI(Edge Side Include) . ESI本身没有什么,只是一个XML的标签集合.ESI和SSI(Server Side I ...