jQuery事件之表单事件

1. jQuery表单事件之blur与focus事件

在之前我们学过了表单处理事件focusin事件与focusout事件,同样用于处理表单焦点的事件还有blur与focus事件。

它们之间的本质区别:是否支持冒泡处理

举个简单的例子

<div>

  <inputtype="text" />

</div>

其中input元素可以触发focus()事件

div是input的父元素,当它包含的元素input触发了focus事件时,它就产生了focusin()事件。

focus()在元素本身产生,focusin()在元素包含的元素中产生;

blur与focusout也亦是如此。

 

2. jQuery表单事件之change事件

<input>元素,<textarea>和<select>元素的值都是可以发生改变的,开发者可以通过change事件去监听这些改变的动作。

input元素

监听value值的变化,当有改变时,失去焦点后触发change事件。对于单选按钮和复选框,当用户用鼠标做出选择时,该事件立即触发。

 

select元素

对于下拉选择框,当用户用鼠标作出选择时,该事件立即触发。

 

textarea元素

多行文本输入框,当有改变时,失去焦点后触发change事件。

 

3. 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.date  => 11111 传递数据

});

 

4. 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">

    <inputtype="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事件。

这里需要特别注意:

(1)form元素是有默认提交表单的行为,如果通过submit处理的话,需要禁止浏览器的这个默认行为。

(2)传统的方式是调用事件对象  e.preventDefault() 来处理, jQuery中可以直接在函数中最后结尾returnfalse即可。

jQuery处理如下:

$("#target").submit(function(data) {

   return false; //阻止默认行为,提交表单

});


附:以上内容整理自慕课网


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值