According to the documentation capture is activated on submit:
Sets a variable you want to capture every time the expression input is submitted.
This does not appear to be true. Here’s a test case to show this:
capture("correctA"): when this.script.correctA 1 otherwise 0 capture("correctB"): when this.script.correctB 1 otherwise 0 correctA = this.numericValue=5 correctB = this.numericValue=5 and this.submitted
Here correctA does capture, but correctB does not capture.
So not only does .submit not instantiate the capture, it seems that capture does not work at all unless .submit is omitted entirely. See screen 1 of the activity below to verify this.
Even more interestingly, hiding the Submit button inactivates capture entirely, no matter what you do. See screen 2 of the activity to verify this.
I recently posted about this in the Questions section here but this doesn’t appear to be resolved. So, bug report it is. I’m very curious what’s really happening with capture.