Just a few (very) small changes can turn what you posted into something that can run just as well without JS as it does with, with the penalty being nothing more than an occasional extra trip to the server for the no-JS version at worst (and that mostly for validation).
No, you don't need to use ToolsRunMacro from within the form (although that is the Designer default) -- you can use the value in a Notes field that captures the value of the submit button to run an agent from the WQS event. Same result, same objects/fields available to the agent (that is, all CGI fields plus the parsed value of fields corresponding to the ones on the Designer form), no JS required. That's not to say that JS isn't a possible and desirable enhancement to the action, just that it ceases to be a REQUIREMENT for functionality. It's really very easy once you wrap your head around the concept (and I'll admit to having a little trouble with the concept at first myself).
Oddly, this approach is functionally identical to what DOmino does natively with the __Click field (the value of which determines when to run your ToolsRunMacro calls) except that it doesn't require any JS (_doClick()). Since I ran across the technique at codestore.net, I've had to wonder why Domino doesn't use a similar technique natively. Text hotspots and image maps, I guess -- there's something to be said for consistency -- but there's no need for buttons or image links to go through _doClick().