My HTML form includes a series of five related tags, all of which need to be single-digit or two-digit numbers. I've created a JavaScript function that will test user-input against a regular expression using an if-else statement. The function works as desired when input is valid; however, I would like to have the focus remain on the input-field if input is invalid, and so far I haven't been able to make that happen.
I've tried using document.getElementById(currseg).focus(); -- where currseg is dynamically set to the ID of the offending input-field. I've also tried using a switch statement with an individual case for each possible bad input-field, and with the ID of the offending field specified directly rather than calculated as a variable.
Validation testing is prompted by an onblur event (I've also tried using the onchange event) for each input-field. I have an alert("Bad user input") in the else condition, so I know the function is flowing properly to the else condition when input is invalid, but focus moves to the next input-field.
Everything I've tried fails to stop the progress of the focus, whether I move from the input-field by mouse-action or by tab-key.
Any suggestions how I can keep focus on a field with invalid input?