focusin、focusout事件 与blur、focus事件均用于表单处理事件,它们之间的本质区别:是否支持冒泡处理javascript
实例:html
<div> <input type="text" /> </div>
其中input元素能够触发focus()事件java
div是input的父元素,当它包含的元素input触发了focus事件时,它就产生了focusin()事件jquery
focus()在元素自己产生,focusin()在元素包含的元素中产生
blur与focusout也亦是如此浏览器
<input>元素,<textarea>和<select>元素的值都是能够发生改变的,开发者能够经过change事件去监听这些改变的动做函数
监听value值的变化,当有改变时,失去焦点后触发change事件。对于单选按钮和复选框,当用户用鼠标作出选择时,该事件当即触发ui
对于下拉选择框,当用户用鼠标做出选择时,该事件当即触发this
多行文本输入框,当有改变时,失去焦点后触发change事件code
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <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>
当 textarea 或文本类型的 input 元素中的文本被选择时,会发生 select 事件orm
这个函数会调用执行绑定到select事件的全部函数,包括浏览器的默认行为。能够经过在某个绑定的函数中返回false来防止触发浏览器的默认行为
select事件只能用于<input>元素与<textarea>元素
方法一:.select()
触发元素的select事件:
$("input").select();
方法二:$ele.select( handler(eventObject) )
绑定$ele元素,每次$ele元素触发点击操做会执行回调 handler函数,这样能够针对事件的反馈作不少操做
<input id="text" value="文字选中"></input> $("#text").select(function() { //响应文字选中回调 //this指向 input元素 });
方法三:$ele.select( [eventData ], handler(eventObject) )
使用与方法二一致,不过能够接受一个数据参数,这样的处理是为了解决不一样做用域下数据传递的问题
<input id="text" value="文字选中"></input> $("#text").select(11111,function(e) {//响应文字选中回调 //this指向 div元素 //e.data => 11111 传递数据 });
提交表单是一个最多见的业务需求,好比用户注册,一些信息的输入都是须要表单的提交。一样的有时候开发者须要在表单提交的时候过滤一些的数据、作一些必要的操做(例如:验证表单输入的正确性,若是错误就阻止提交,重新输入)此时能够经过submit事件,监听下提交表单的这个动做
方法一:$ele.submit()
绑定$ele元素,不带任何参数通常是用来指定触发一个事件,用的比较少
<div id="text">点击触发<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事件的行为:
上述这些操做下,均可以截获submit事件
特别注意:
jQuery处理
$("#target").submit(function(data) { return false; //阻止默认行为,提交表单 });