简体   繁体   中英

IE9 won't execute the default action for a link, if it's disabled during the click event

To prevent users from submitting a form twice, I disable the submit button after a click with:

$('a').on('click', function(){
    $(this).button('option', 'disabled', true);
});

On Chrome, the default action (following the link / executing the JS in the href attribute) is executed. On IE9 however, nothing happens and the button stays disabled. I tried poking around it in the respective JS debuggers and it seems both events are processed in the same phase.

You can see it in action on jsFiddle: http://jsfiddle.net/inerdial/yXWBn/2/

Is there any reason for this behaviour, and/or a workaround less hackish than manually triggering the button's default action somehow?

In case it's any relevant, the submit button is an ASP.NET LinkButton, styled with jQuery UI.

您必须在“提交”按钮上设置UseSubmitBehavior="false" ,一切都会按预期进行。

您可以尝试将该逻辑放入setTimeout调用中

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM