Thanks for a bunch of tvanfosson for prompt help.
OK update:
I followed more and more links and eventually found documentation for "success." The documentation on the pluginโs homepage is awful and omits many key features :) But on the jQuery official page, itโs โbetter.โ The Success parameter is intended to be run each time a separate field is successfully checked. So it worked on the design, and I mistakenly believed that it only works when the whole form is valid.
I tried your idea invalidHandler. I liked this idea. One of the problems I ran into was that the ImageButton postback still ALWAYS fired before starting recording before invalidHandler code was run. Thus, postback will continue anyway, after which invalidHandler will disable future callbacks, unfortunately, they fired incorrectly. But besides this, he showed all the other signs of an ideal solution.
Then I went the other way by trying the submitHandler method, i.e. back. Again, this suffers from some ordering issues because postback starts first, but blocks again, and then submitHandler resolves future callbacks, but it was already too late, so this postback was missed. You need to double-click the button to make it go away.
So, the final solution of the half-clue is not so bad, to be honest:
I changed this line to: // Attach client-side validation to the main form $ ("# <% = form1.ClientID%>"). validate ({submitHandler: function () {PreventPostback = false; __doPostBack ('UpdatePanel1', '');}});
As you can see, it first switches the PreventPostback variable, but then starts a new record manually, because the first feedback was already blocked and died. Thus, this call to the __doPostBack guide ensures that the new postback will be launched with the new PreventPostback value.
I removed the event methods due to ImageButtons and made a new method in the server-side code called "DoPostBackLogic ()", which is only called when the page is sent back, which, as I know, should have been from this validation logic because this is the only postback that can happen on my form. Then for me there is all the logic of hide / show / save. This means that when I manually call __doPostBack, I can just use the UpdatePanel identifier and not worry about how to simulate a specific ImageButton, etc.
Thus, it works perfectly. Postprocesses are disabled by default, and when the form is valid, then callbacks are allowed, but then the postback starts manually so that the new value takes effect.
So, this is essentially your second decision, thanks again for listening and sharing! :)