关于form表单的summit和invalid事件
来源:4-13 html5默认气泡修改演示
慕虎5004390
2020-02-03 14:52:16
老师,form表单的summit和invalid事件只有在表单提交事件的捕获阶段触发才有作用吗,为什么在冒泡阶段就不能阻止默认事件呢?以及什么情况下应该使用捕获事件呢?
1回答
同学你好,问题解答如下:
1.对,只有在捕获阶段阻止默认行为。捕获是外层到里层往下一层层触发事件,而冒泡是从里到外一层层往上触发事件。invalid和submit事件是给form绑定的,从外层往里面捕获,先执行form的事件,执行了 event.preventDefault(); (阻止传播,可以阻止冒泡或者捕获),所以就不会往下捕获了,input的默认行为就无法触发。
如果是冒泡阶段,先触发input的默认行为,然后才会往上冒泡,触发form的事件,此时执行vent.preventDefault();也没有任何意义了。
2.冒泡和捕获的区别就是执行顺序问题,具体情况需要具体分析。假如一个元素嵌套一个子元素,如果想要父元素事件先触发,就使用捕获。如果想要子元素事件先触发,就用冒泡。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题
回答 3
回答 2