Hacker News new | past | comments | ask | show | jobs | submit login

Is it me, or why is a setTimeout needed in this example?

$(document).ready(function(){ $("form").submit(function(){ setTimeout(function() { $('input').attr('disabled', 'disabled'); $('a').attr('disabled', 'disabled'); }, 50); }) });




50 should be a constant called NEXT_TICK with a value of 0. This makes it run on the next event loop, ie, default event submit form, next tick afterwards the form is disabled


You are looking for setImmediate[1].

EDIT: Oh, never knew that this method was a Node-ism only.

[1] https://developer.mozilla.org/en-US/docs/Web/API/Window/setI...


Actually it's common enough that

    var setNextTick = function(nextTickFunction){window.setTimeout(nextTickFunction), 0}) 
...sounds like a damn good idea.

Hate the name 'setImmediate' though, immediate implies the current tick and people would wonder why you're using it.


Some browsers will not submit the form if you disable the submit input inside the submit event.


Was asking myself the same thing. This would make sense if your submit button will actually cause an ajax request that you might want to repeat. But actually submitting the form will cause a page reload either way, or not?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: