如你所见,我有一个带有禁用(通过javascript)提交按钮的表单。
我想要能够绑定一个点击事件,无论如何,所以我可以做一些jazzy指示什么需要修正的输入,然后我将允许提交表单(即再次启用该按钮)。
然而,禁用提交按钮也显然禁用绑定到按钮的任何点击事件,即使它们绑定在禁用后 – 任何想法如何解决这个问题?
实际上,一个解决方案是停止禁用按钮,而是有一个事件
$('form').submit(function(event){ event.preventDefault(); });
然而,我想知道禁用的输入和javascript事件的入口,如果有解决方法,因为我从来没有遇到过这种行为。
解决方法
Firefox,and perhaps other browsers,disable DOM events on form fields
that are disabled. Any event that starts at the disabled form field is
completely canceled and does not propagate up the DOM tree. Correct me
if I’m wrong,but if you click on the disabled button,the source of
the event is the disabled button and the click event is completely
wiped out. The browser literally doesn’t know the button got clicked,
nor does it pass the click event on. It’s as if you are clicking on a
black hole on the web page.
我想你可能可以通过将按钮包装在div中并点击div的点击事件的逻辑来“伪造”一个点击。但是,如上所述,禁用元素上的事件似乎没有冒泡在DOM树。