关于form表单的summit和invalid事件

来源:4-13 html5默认气泡修改演示

慕虎5004390

2020-02-03 14:52:16

老师,form表单的summit和invalid事件只有在表单提交事件的捕获阶段触发才有作用吗,为什么在冒泡阶段就不能阻止默认事件呢?以及什么情况下应该使用捕获事件呢?

写回答

1回答

好帮手慕夭夭

2020-02-03

同学你好,问题解答如下:

1.对,只有在捕获阶段阻止默认行为。捕获是外层到里层往下一层层触发事件,而冒泡是从里到外一层层往上触发事件。invalid和submit事件是给form绑定的,从外层往里面捕获,先执行form的事件,执行了 event.preventDefault(); (阻止传播,可以阻止冒泡或者捕获),所以就不会往下捕获了,input的默认行为就无法触发。

http://img.mukewang.com/climg/5e37eaa409a0539709390268.jpg

如果是冒泡阶段,先触发input的默认行为,然后才会往上冒泡,触发form的事件,此时执行vent.preventDefault();也没有任何意义了。

http://img.mukewang.com/climg/5e37eb18090dbe3809990344.jpg

2.冒泡和捕获的区别就是执行顺序问题,具体情况需要具体分析。假如一个元素嵌套一个子元素,如果想要父元素事件先触发,就使用捕获。如果想要子元素事件先触发,就用冒泡。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

1

0 学习 · 6815 问题

查看课程