[jQuery教程]jQuery表单事件(十)
![[jQuery 教程]jQuery 表单事件(十)](https://mybj123.com/wp-content/uploads/2018/12/input.png)
介绍表单中的事件,包含选择、失去焦点、获取焦点等事件理解及应用。
jQuery 表单事件之 blur 与 focus 事件
在之前我们学过了表单处理事件focusin事件与focusout事件,同样用于处理表单焦点的事件还有 blur 与 focus 事件。
它们之间的本质区别:
是否支持冒泡处理
举个简单的例子
<div> <input type="text" /> </div>
其中 input 元素可以触发focus()事件,div 是 input 的父元素,当它包含的元素 input 触发了 focus 事件时,它就产生了focusin()事件。
focus()在元素本身产生,focusin()在元素包含的元素中产生。
blur 与 focusout 也亦是如此。
jQuery 表单事件之 change 事件
<input>元素,<textarea>和<select>元素的值都是可以发生改变的,开发者可以通过 change 事件去监听这些改变的动作。
- input 元素:监听 value 值的变化,当有改变时,失去焦点后触发 change 事件。对于单选按钮和复选框,当用户用鼠标做出选择时,该事件立即触发。
- select 元素:对于下拉选择框,当用户用鼠标作出选择时,该事件立即触发
- textarea 元素:多行文本输入框,当有改变时,失去焦点后触发 change 事件
change 事件很简单,无非就是注意下触发的先后行为。相关代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<style>
.left div,
.right div {
width: 100%;
padding: 5px;
margin: 5px;
float: left;
border: 1px solid #ccc;
}
.left div {
background: #bbffaa;
}
.right div {
background: yellow;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
</head>
<body>
<h2>input、textarea 与 select</h2>
<div class="left">
<div class="aaron">input:
<input class="target1" type="text" value="监听 input 的改变" />
</div>
<div class="aaron1">select:
<select class="target2">
<option value="option1" selected="selected">Option 1</option>
<option value="option2">Option 2</option>
</select>
</div>
<div class="aaron3">textarea:
<textarea class="target2" rows="3" cols="20">多行的文本输入控件</textarea>
</div>
</div>
输出结果:
<div id="result"></div>
<script type="text/javascript">
//监听 input 值的改变
$('.target1').change(function (e) {
$("#result").html(e.target.value)
});
//监听 select:
$(".target2").change(function (e) {
$("#result").html(e.target.value)
})
//监听 textarea:
$(".target3").change(function (e) {
$("#result").html(e.target.value)
})
</script>
</body>
</html>
效果如下:

jQuery 表单事件之 select 事件
当textarea或文本类型的 input 元素中的文本被选择时,会发生select事件。
这个函数会调用执行绑定到select事件的所有函数,包括浏览器的默认行为。可以通过在某个绑定的函数中返回 false 来防止触发浏览器的默认行为。
select 事件只能用于<input>元素与<textarea>元素。
使用上非常简单:
方法一:.select()
触发元素的 select 事件:
$("input").select();
方法二:$ele.select( handler(eventObject) )
绑定$ele元素,每次$ele元素触发点击操作会执行回调 handler函数。
这样可以针对事件的反馈做很多操作了。
<input id="test" value="文字选中"></input>
$("#test").select(function() { //响应文字选中回调
//this 指向 input 元素
});
方法三:$ele.select( [eventData ], handler(eventObject) )
使用与方法二一致,不过可以接受一个数据参数,这样的处理是为了解决不同作用域下数据传递的问题。
<input id="test" value="文字选中"></input>
$("#test").select(11111,function(e) {//响应文字选中回调
//this 指向 div 元素
//e.data => 11111 传递数据
});
jQuery 表单事件之 submit 事件
提交表单是一个最常见的业务需求,比如用户注册,一些信息的输入都是需要表单的提交。同样的有时候开发者需要在表单提交的时候过滤一些的数据、做一些必要的操作(例如:验证表单输入的正确性,如果错误就阻止提交,从新输入)此时可以通过 submit 事件,监听下提交表单的这个动作
使用上非常简单,与基本事件参数处理保持一致
方法一:$ele.submit()
绑定$ele元素,不带任何参数一般是用来指定触发一个事件,用的比较少
<div id="test">点击触发<div>
$("ele").submit(function(){
alert('触发指定事件')
})
$("#text").click(function(){
$("ele").submit() //指定触发事件
});
方法二:$ele.submit( handler(eventObject) )
绑定$ele元素,每次$ele元素触发点击操作会执行回调 handler函数
这样可以针对事件的反馈做很多操作了
<form id="target" action="destination.html">
<input type="submit" value="Go" />
</form>
$("#target").submit(function() { //绑定提交表单触发
//this 指向 from 元素
});
方法三:$ele.submit( [eventData ], handler(eventObject) )
使用与方法二一致,不过可以接受一个数据参数,这样的处理是为了解决不同作用域下数据传递的问题.
<form id="target" action="destination.html">
<input type="submit" value="Go" />
</form>
$("#target").submit(11111,function(data) { //绑定提交表单触发
//data => 1111 //传递的 data 数据
});
通过在<form>元素上绑定submit事件,开发者可以监听到用户的提交表单的的行为
具体能触发 submit 事件的行为:
- <input type=”submit”>
- <input type=”image”>
- <button type=”submit”>
- 当某些表单元素获取焦点时,敲击 Enter(回车键)
上述这些操作下,都可以截获 submit 事件。
这里需要特别注意:
form 元素是有默认提交表单的行为,如果通过submit处理的话,需要禁止浏览器的这个默认行为
传统的方式是调用事件对象 e.preventDefault() 来处理, jQuery 中可以直接在函数中最后结尾return false即可。
jQuery 处理如下:
$("#target").submit(function(data) {
return false; //阻止默认行为,提交表单
});
以上关于[jQuery教程]jQuery表单事件(十)的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » [jQuery教程]jQuery表单事件(十)
微信
支付宝