jQuery事件2

                                    jQuery事件2 

一、 表单事件
1、 表单事件具有三种,分别是:
(1)文本改变(change)事件:change([[data],fn]);
(2)查询(select)事件:select([[data],fn]);
(3)提交(submit)事件:submit([[data],fn])。
注意:查询(select)事件和文本改变(change)事件适用于表单的元素;提交(submit)事件适用于整个表单。
2、表单事件中的文本改变(change)事件可以用在元素,元素和元素中。因为它们的值都是可以发生改变的。
3、文本改变事件的触发:
(1)在值有改变且失去焦点后触发的有:文本类的input元素和textarea元素;
(2)在用户用鼠标做出选择后触发的有:选择类的select元素、单选框和复选框。
4、表单事件中的查询(select)事件的触发是:在textarea 元素或文本类型的 input 元素中的文本被选择后。查询(select)事件只能用于元素和元素中。
5、查询(select)事件表达式中的函数(fn)会调用执行绑定到select事件的所有函数,其中也包括浏览器的默认行为。但我们可以通过在某个绑定的函数中,返回一个false来禁止触发浏览器的默认行为。
6、表单事件中的提交(submit)事件只适用于表单元素的提交操作。它在使用上非常简单,与基本事件参数处理保持一致。
7、提交表单是一个最常见的业务需求。比如用户注册,一些信息的输入等都是需要提交表单的。我们有时候是需要在表单提交的时候做一些过滤数据等必要的操作的,例如在验证表单输入的正确性时。这时我们就可以通过submit事件来监听提交表单的这个操作了。
8、我们需要注意的是:form元素是有默认提交表单的行为的,如果通过submit处理的话,我们需要禁止浏览器的这个默认行为。而禁止浏览器的这个默认行为有俩种方式:
(1)在HTML的标签中:可以直接在form标签上加上‘”return false;”’的字段样式。例如:
< form ”return false;”></ form>;
(2)在jQuery中:可以直接在函数中以return false作为最后结尾。例如:
< script>
//阻止表单提交
$(“form”).submit( function () {
return false;
} );
//禁止浏览器的默认提交行为
$(“#btnSubmit”).submit(function () {
return false;
});
</ script>
二、键盘事件
1、键盘事件具有三种,分别是:
(1)键盘按下(keydown)事件:keydown([[data],fn]);
(2)键盘弹起(keyup)事件:keyup([[data],fn]);
(3)键盘检测(keypress)事件:keypress([[data],fn])。
2、键盘按下与松手是根据人的手势动作而分解出的2个触发行为。针对这样的2种动作,jQuery分别提供了对应keydown与keyup方法来监听。
3、键盘按下(keydown)事件的触发:当用户在一个元素上第一次按下键盘上的字母键时。键盘按下(keydown)事件的使用方法有:
(1)直接绑定事件: $ (“.class”).keydown( handler(eventObject) )
(2)传递参数: $ (“.class”).keydown( [eventData ], handler(eventObject) )
(3)手动触发已绑定的事件: $ (“.class”).keydown()
4、注意:键盘按下(keydown)事件是在键盘被按下时立即就触发的;而弹起(keyup)事件是在键盘弹起(松手)时立即就触发的。
5、理想状态下,它可以绑定到任何元素上,但实际上,键盘按下(keydown)事件和弹起(keyup)事件只是发送到具有焦点的元素上。可在不同的浏览器中,能获取焦点的元素却略有不同。但是表单元素却总是能获取到焦点,因此,对于此事件类型最适合使用表单元素。
6、键盘检测(keypress)事件每次获取到的内容都是之前输入的,而不是当前输入的内容。
7、在input元素上绑定键盘事件,我们会发现,键盘按下(keydown)事件触发在文字还没敲进文本框,这时如果在键盘按下(keydown)事件中输出文本框中的文本,得到的是触发键盘事件前的文本;而键盘弹起(keyup)事件触发时整个键盘事件的操作已经完成,获得的是触发键盘事件后的文本。
8、那么,就会出现这样的一个问题,没触发键盘事件但已输入内容且操作未完成时我们怎么去获取到文本框中的文本呢?
9、对此,当浏览器在捕获键盘输入时,jQuery还提供了一个键盘检测(keypress)事件的响应,它跟键盘按下(keydown)事件是非常相似的。
10、键盘检测(keypress)事件与键盘按下(keydown)事件和键盘弹起(keyup)事件的主要区别有三种,分别是:
(1)只能捕获到单个字符,不能捕获组合键;
(2)无法响应系统功能键(如delete,backspace等);
(3)不区分小键盘和主键盘的数字字符。
注意:键盘检测(keypress)事件无法检测到纯中文输入。
它是在全部都输入中文去测试时无法显示出来,但在中英文混杂的去输入时则可显示出来,原因是输入英文可获取到在英文之前的中文文本,但是不能获取到英文之后的中文文本。即要在中文之后输入英文才能检测到中文。
11、总而言之,KeyPress事件主要用来接收字母、数字等ANSI字符,而KeyDown事件和KeyUP事件过程可以处理任何不被 KeyPress 识别的击键。诸如:功能键(F1-F12)、编辑键、定位键以及任何这些键和键盘换档键的组合等。

猜你喜欢

转载自blog.csdn.net/weixin_44621746/article/details/89343446