[jQuery] Re: Validate: Focus on first invalid field after validation
Whats wrong with keeping the focus on the active field, if its invalid? If you enter something into the, say, third field, hit enter to submit, then it turns out both that field and another before that are invalid, why move the focus to a different field? Jörn On Tue, Sep 8, 2009 at 4:47 AM, Geoffrey geoffreydhug...@gmail.com wrote: I've been building up my validation using the jquery validation plugin but I can't work out how to get a failed validation to default the focus to the first invalid input rather than to the last selected input. If there is no input field selected, when I submit then a failed validation will focus the cursor on the first field but if the cursor was left in a field and submitted then the focus stays there (if it's invalid) rather than jump to the first invalid input. From what I've read and seen, this is the expected behaviour but not what I want. Is there a way I can get the first invalid field and set the focus to that? A demo of what I have built up so far can be seen at https://webdev2.otago.ac.nz/oihrn2009/ All my jquery validation can be found in https://webdev2.otago.ac.nz/oihrn2009/javascript/document.ready.all.js
[jQuery] Re: Validate: Focus on first invalid field after validation
And what if you enter an invalid character in an input at the bottom of the field? For example entering a letter in the Conference Dinner input of my sample form. A user is going to miss the error message at the top of the form along with other input errors if there's an error in the last inputs of my example form and is going to have submit multiple times before they may even be aware of other errors. I'd expected jumping to the first invalid input to be standard behaviour. My fault there I guess. On Sep 15, 10:08 pm, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Whats wrong with keeping the focus on the active field, if its invalid? If you enter something into the, say, third field, hit enter to submit, then it turns out both that field and another before that are invalid, why move the focus to a different field? Jörn On Tue, Sep 8, 2009 at 4:47 AM, Geoffrey geoffreydhug...@gmail.com wrote: I've been building up my validation using the jquery validation plugin but I can't work out how to get a failed validation to default the focus to the first invalid input rather than to the last selected input. If there is no input field selected, when I submit then a failed validation will focus the cursor on the first field but if the cursor was left in a field and submitted then the focus stays there (if it's invalid) rather than jump to the first invalid input. From what I've read and seen, this is the expected behaviour but not what I want. Is there a way I can get the first invalid field and set the focus to that? A demo of what I have built up so far can be seen at https://webdev2.otago.ac.nz/oihrn2009/ All my jquery validation can be found in https://webdev2.otago.ac.nz/oihrn2009/javascript/document.ready.all.js
[jQuery] Re: Validate: Focus on first invalid field after validation
Well, you can set focusInvalid: false and implement invalidHandler to focus the first field. That should do the trick. Jörn On Tue, Sep 15, 2009 at 10:01 PM, Geoffrey geoffreydhug...@gmail.com wrote: And what if you enter an invalid character in an input at the bottom of the field? For example entering a letter in the Conference Dinner input of my sample form. A user is going to miss the error message at the top of the form along with other input errors if there's an error in the last inputs of my example form and is going to have submit multiple times before they may even be aware of other errors. I'd expected jumping to the first invalid input to be standard behaviour. My fault there I guess. On Sep 15, 10:08 pm, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Whats wrong with keeping the focus on the active field, if its invalid? If you enter something into the, say, third field, hit enter to submit, then it turns out both that field and another before that are invalid, why move the focus to a different field? Jörn On Tue, Sep 8, 2009 at 4:47 AM, Geoffrey geoffreydhug...@gmail.com wrote: I've been building up my validation using the jquery validation plugin but I can't work out how to get a failed validation to default the focus to the first invalid input rather than to the last selected input. If there is no input field selected, when I submit then a failed validation will focus the cursor on the first field but if the cursor was left in a field and submitted then the focus stays there (if it's invalid) rather than jump to the first invalid input. From what I've read and seen, this is the expected behaviour but not what I want. Is there a way I can get the first invalid field and set the focus to that? A demo of what I have built up so far can be seen at https://webdev2.otago.ac.nz/oihrn2009/ All my jquery validation can be found in https://webdev2.otago.ac.nz/oihrn2009/javascript/document.ready.all.js
[jQuery] Re: Validate: Focus on first invalid field after validation
I guess I'm going to have too. I just need to work out how to return the first invalid field so I can set the focus. On Sep 16, 8:16 am, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Well, you can set focusInvalid: false and implement invalidHandler to focus the first field. That should do the trick. Jörn On Tue, Sep 15, 2009 at 10:01 PM, Geoffrey geoffreydhug...@gmail.com wrote: And what if you enter an invalid character in an input at the bottom of the field? For example entering a letter in the Conference Dinner input of my sample form. A user is going to miss the error message at the top of the form along with other input errors if there's an error in the last inputs of my example form and is going to have submit multiple times before they may even be aware of other errors. I'd expected jumping to the first invalid input to be standard behaviour. My fault there I guess. On Sep 15, 10:08 pm, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Whats wrong with keeping the focus on the active field, if its invalid? If you enter something into the, say, third field, hit enter to submit, then it turns out both that field and another before that are invalid, why move the focus to a different field? Jörn On Tue, Sep 8, 2009 at 4:47 AM, Geoffrey geoffreydhug...@gmail.com wrote: I've been building up my validation using the jquery validation plugin but I can't work out how to get a failed validation to default the focus to the first invalid input rather than to the last selected input. If there is no input field selected, when I submit then a failed validation will focus the cursor on the first field but if the cursor was left in a field and submitted then the focus stays there (if it's invalid) rather than jump to the first invalid input. From what I've read and seen, this is the expected behaviour but not what I want. Is there a way I can get the first invalid field and set the focus to that? A demo of what I have built up so far can be seen at https://webdev2.otago.ac.nz/oihrn2009/ All my jquery validation can be found in https://webdev2.otago.ac.nz/oihrn2009/javascript/document.ready.all.js
[jQuery] Re: Validate: Focus on first invalid field after validation
Something like this? $(form).validate({ focusInvalid: false, invalidHandler: function() { $(this).find(:input.error:first).focus(); } }); Jörn On Tue, Sep 15, 2009 at 10:24 PM, Geoffrey geoffreydhug...@gmail.com wrote: I guess I'm going to have too. I just need to work out how to return the first invalid field so I can set the focus. On Sep 16, 8:16 am, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Well, you can set focusInvalid: false and implement invalidHandler to focus the first field. That should do the trick. Jörn On Tue, Sep 15, 2009 at 10:01 PM, Geoffrey geoffreydhug...@gmail.com wrote: And what if you enter an invalid character in an input at the bottom of the field? For example entering a letter in the Conference Dinner input of my sample form. A user is going to miss the error message at the top of the form along with other input errors if there's an error in the last inputs of my example form and is going to have submit multiple times before they may even be aware of other errors. I'd expected jumping to the first invalid input to be standard behaviour. My fault there I guess. On Sep 15, 10:08 pm, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Whats wrong with keeping the focus on the active field, if its invalid? If you enter something into the, say, third field, hit enter to submit, then it turns out both that field and another before that are invalid, why move the focus to a different field? Jörn On Tue, Sep 8, 2009 at 4:47 AM, Geoffrey geoffreydhug...@gmail.com wrote: I've been building up my validation using the jquery validation plugin but I can't work out how to get a failed validation to default the focus to the first invalid input rather than to the last selected input. If there is no input field selected, when I submit then a failed validation will focus the cursor on the first field but if the cursor was left in a field and submitted then the focus stays there (if it's invalid) rather than jump to the first invalid input. From what I've read and seen, this is the expected behaviour but not what I want. Is there a way I can get the first invalid field and set the focus to that? A demo of what I have built up so far can be seen at https://webdev2.otago.ac.nz/oihrn2009/ All my jquery validation can be found in https://webdev2.otago.ac.nz/oihrn2009/javascript/document.ready.all.js
[jQuery] Re: Validate: Focus on first invalid field after validation
Damn. I always forget about :first. Thanks. On Sep 16, 8:34 am, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Something like this? $(form).validate({ focusInvalid: false, invalidHandler: function() { $(this).find(:input.error:first).focus(); } }); Jörn On Tue, Sep 15, 2009 at 10:24 PM, Geoffrey geoffreydhug...@gmail.com wrote: I guess I'm going to have too. I just need to work out how to return the first invalid field so I can set the focus. On Sep 16, 8:16 am, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Well, you can set focusInvalid: false and implement invalidHandler to focus the first field. That should do the trick. Jörn On Tue, Sep 15, 2009 at 10:01 PM, Geoffrey geoffreydhug...@gmail.com wrote: And what if you enter an invalid character in an input at the bottom of the field? For example entering a letter in the Conference Dinner input of my sample form. A user is going to miss the error message at the top of the form along with other input errors if there's an error in the last inputs of my example form and is going to have submit multiple times before they may even be aware of other errors. I'd expected jumping to the first invalid input to be standard behaviour. My fault there I guess. On Sep 15, 10:08 pm, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Whats wrong with keeping the focus on the active field, if its invalid? If you enter something into the, say, third field, hit enter to submit, then it turns out both that field and another before that are invalid, why move the focus to a different field? Jörn On Tue, Sep 8, 2009 at 4:47 AM, Geoffrey geoffreydhug...@gmail.com wrote: I've been building up my validation using the jquery validation plugin but I can't work out how to get a failed validation to default the focus to the first invalid input rather than to the last selected input. If there is no input field selected, when I submit then a failed validation will focus the cursor on the first field but if the cursor was left in a field and submitted then the focus stays there (if it's invalid) rather than jump to the first invalid input. From what I've read and seen, this is the expected behaviour but not what I want. Is there a way I can get the first invalid field and set the focus to that? A demo of what I have built up so far can be seen at https://webdev2.otago.ac.nz/oihrn2009/ All my jquery validation can be found in https://webdev2.otago.ac.nz/oihrn2009/javascript/document.ready.all.js
[jQuery] Re: Validate: Focus on first invalid field after validation
Hmmm...I tried this but I discovered on the first submit that it doesn't focus the first invalid field but it will if I hit return to submit again. Also, when hitting submit on a field that's not checked for validity, the form will submit successfully this second time as well despite still having invalid fields. You can test it out using my sample form from the OP. On Sep 16, 8:37 am, Geoffrey geoffreydhug...@gmail.com wrote: Damn. I always forget about :first. Thanks. On Sep 16, 8:34 am, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Something like this? $(form).validate({ focusInvalid: false, invalidHandler: function() { $(this).find(:input.error:first).focus(); } }); Jörn On Tue, Sep 15, 2009 at 10:24 PM, Geoffrey geoffreydhug...@gmail.com wrote: I guess I'm going to have too. I just need to work out how to return the first invalid field so I can set the focus. On Sep 16, 8:16 am, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Well, you can set focusInvalid: false and implement invalidHandler to focus the first field. That should do the trick. Jörn On Tue, Sep 15, 2009 at 10:01 PM, Geoffrey geoffreydhug...@gmail.com wrote: And what if you enter an invalid character in an input at the bottom of the field? For example entering a letter in the Conference Dinner input of my sample form. A user is going to miss the error message at the top of the form along with other input errors if there's an error in the last inputs of my example form and is going to have submit multiple times before they may even be aware of other errors. I'd expected jumping to the first invalid input to be standard behaviour. My fault there I guess. On Sep 15, 10:08 pm, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Whats wrong with keeping the focus on the active field, if its invalid? If you enter something into the, say, third field, hit enter to submit, then it turns out both that field and another before that are invalid, why move the focus to a different field? Jörn On Tue, Sep 8, 2009 at 4:47 AM, Geoffrey geoffreydhug...@gmail.com wrote: I've been building up my validation using the jquery validation plugin but I can't work out how to get a failed validation to default the focus to the first invalid input rather than to the last selected input. If there is no input field selected, when I submit then a failed validation will focus the cursor on the first field but if the cursor was left in a field and submitted then the focus stays there (if it's invalid) rather than jump to the first invalid input. From what I've read and seen, this is the expected behaviour but not what I want. Is there a way I can get the first invalid field and set the focus to that? A demo of what I have built up so far can be seen at https://webdev2.otago.ac.nz/oihrn2009/ All my jquery validation can be found in https://webdev2.otago.ac.nz/oihrn2009/javascript/document.ready.all.js
[jQuery] Re: Validate: Focus on first invalid field after validation
I can't reproduce that. Seems to work fine for me. Jörn On Tue, Sep 15, 2009 at 11:40 PM, Geoffrey geoffreydhug...@gmail.com wrote: Hmmm...I tried this but I discovered on the first submit that it doesn't focus the first invalid field but it will if I hit return to submit again. Also, when hitting submit on a field that's not checked for validity, the form will submit successfully this second time as well despite still having invalid fields. You can test it out using my sample form from the OP. On Sep 16, 8:37 am, Geoffrey geoffreydhug...@gmail.com wrote: Damn. I always forget about :first. Thanks. On Sep 16, 8:34 am, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Something like this? $(form).validate({ focusInvalid: false, invalidHandler: function() { $(this).find(:input.error:first).focus(); } }); Jörn On Tue, Sep 15, 2009 at 10:24 PM, Geoffrey geoffreydhug...@gmail.com wrote: I guess I'm going to have too. I just need to work out how to return the first invalid field so I can set the focus. On Sep 16, 8:16 am, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Well, you can set focusInvalid: false and implement invalidHandler to focus the first field. That should do the trick. Jörn On Tue, Sep 15, 2009 at 10:01 PM, Geoffrey geoffreydhug...@gmail.com wrote: And what if you enter an invalid character in an input at the bottom of the field? For example entering a letter in the Conference Dinner input of my sample form. A user is going to miss the error message at the top of the form along with other input errors if there's an error in the last inputs of my example form and is going to have submit multiple times before they may even be aware of other errors. I'd expected jumping to the first invalid input to be standard behaviour. My fault there I guess. On Sep 15, 10:08 pm, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Whats wrong with keeping the focus on the active field, if its invalid? If you enter something into the, say, third field, hit enter to submit, then it turns out both that field and another before that are invalid, why move the focus to a different field? Jörn On Tue, Sep 8, 2009 at 4:47 AM, Geoffrey geoffreydhug...@gmail.com wrote: I've been building up my validation using the jquery validation plugin but I can't work out how to get a failed validation to default the focus to the first invalid input rather than to the last selected input. If there is no input field selected, when I submit then a failed validation will focus the cursor on the first field but if the cursor was left in a field and submitted then the focus stays there (if it's invalid) rather than jump to the first invalid input. From what I've read and seen, this is the expected behaviour but not what I want. Is there a way I can get the first invalid field and set the focus to that? A demo of what I have built up so far can be seen at https://webdev2.otago.ac.nz/oihrn2009/ All my jquery validation can be found in https://webdev2.otago.ac.nz/oihrn2009/javascript/document.ready.all.js
[jQuery] Re: Validate: Focus on first invalid field after validation
Not for me. In Safari 4 and Firefox 3.5.3 under Snow Leopard and Firefox 3.5.3 under XP: Click in a required field (not the first one) and hit return. Focus stays in the focused field. Hit return again and the focus jumps to the first invalid field. If you focus a non-required field and hit return, the focus stays in the non-required field but you do get the error messages for invalid fields. If you hit return again, the focus jumps to the first invalid field but then the form submits successfully. In Internet Explorer 7 under XP: Click in required field (not the first one) and hit return. Focus stays in the focused field. Hit return again and the focus stays in the focused field. If you focus on a non-required element and hit return, the focus jumps to the first invalid field. On Sep 16, 9:44 am, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: I can't reproduce that. Seems to work fine for me. Jörn On Tue, Sep 15, 2009 at 11:40 PM, Geoffrey geoffreydhug...@gmail.com wrote: Hmmm...I tried this but I discovered on the first submit that it doesn't focus the first invalid field but it will if I hit return to submit again. Also, when hitting submit on a field that's not checked for validity, the form will submit successfully this second time as well despite still having invalid fields. You can test it out using my sample form from the OP. On Sep 16, 8:37 am, Geoffrey geoffreydhug...@gmail.com wrote: Damn. I always forget about :first. Thanks. On Sep 16, 8:34 am, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Something like this? $(form).validate({ focusInvalid: false, invalidHandler: function() { $(this).find(:input.error:first).focus(); } }); Jörn On Tue, Sep 15, 2009 at 10:24 PM, Geoffrey geoffreydhug...@gmail.com wrote: I guess I'm going to have too. I just need to work out how to return the first invalid field so I can set the focus. On Sep 16, 8:16 am, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Well, you can set focusInvalid: false and implement invalidHandler to focus the first field. That should do the trick. Jörn On Tue, Sep 15, 2009 at 10:01 PM, Geoffrey geoffreydhug...@gmail.com wrote: And what if you enter an invalid character in an input at the bottom of the field? For example entering a letter in the Conference Dinner input of my sample form. A user is going to miss the error message at the top of the form along with other input errors if there's an error in the last inputs of my example form and is going to have submit multiple times before they may even be aware of other errors. I'd expected jumping to the first invalid input to be standard behaviour. My fault there I guess. On Sep 15, 10:08 pm, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Whats wrong with keeping the focus on the active field, if its invalid? If you enter something into the, say, third field, hit enter to submit, then it turns out both that field and another before that are invalid, why move the focus to a different field? Jörn On Tue, Sep 8, 2009 at 4:47 AM, Geoffrey geoffreydhug...@gmail.com wrote: I've been building up my validation using the jquery validation plugin but I can't work out how to get a failed validation to default the focus to the first invalid input rather than to the last selected input. If there is no input field selected, when I submit then a failed validation will focus the cursor on the first field but if the cursor was left in a field and submitted then the focus stays there (if it's invalid) rather than jump to the first invalid input. From what I've read and seen, this is the expected behaviour but not what I want. Is there a way I can get the first invalid field and set the focus to that? A demo of what I have built up so far can be seen at https://webdev2.otago.ac.nz/oihrn2009/ All my jquery validation can be found in https://webdev2.otago.ac.nz/oihrn2009/javascript/document.ready.all.js
[jQuery] Re: Validate: Focus on first invalid field after validation
Ok, the problem with the non-validated fields submitting on hitting return twice is resolved by removing the following... onfocusout: function(element) { $(element).valid(); }, The problem is, I want this as I want an error to show if they tab through required fields and leave them blank. It doesn't resolve the issue of the first submit still focusing on the last field focused and the second submit then moving the focus. On Sep 16, 10:00 am, Geoffrey geoffreydhug...@gmail.com wrote: Not for me. In Safari 4 and Firefox 3.5.3 under Snow Leopard and Firefox 3.5.3 under XP: Click in a required field (not the first one) and hit return. Focus stays in the focused field. Hit return again and the focus jumps to the first invalid field. If you focus a non-required field and hit return, the focus stays in the non-required field but you do get the error messages for invalid fields. If you hit return again, the focus jumps to the first invalid field but then the form submits successfully. In Internet Explorer 7 under XP: Click in required field (not the first one) and hit return. Focus stays in the focused field. Hit return again and the focus stays in the focused field. If you focus on a non-required element and hit return, the focus jumps to the first invalid field. On Sep 16, 9:44 am, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: I can't reproduce that. Seems to work fine for me. Jörn On Tue, Sep 15, 2009 at 11:40 PM, Geoffrey geoffreydhug...@gmail.com wrote: Hmmm...I tried this but I discovered on the first submit that it doesn't focus the first invalid field but it will if I hit return to submit again. Also, when hitting submit on a field that's not checked for validity, the form will submit successfully this second time as well despite still having invalid fields. You can test it out using my sample form from the OP. On Sep 16, 8:37 am, Geoffrey geoffreydhug...@gmail.com wrote: Damn. I always forget about :first. Thanks. On Sep 16, 8:34 am, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Something like this? $(form).validate({ focusInvalid: false, invalidHandler: function() { $(this).find(:input.error:first).focus(); } }); Jörn On Tue, Sep 15, 2009 at 10:24 PM, Geoffrey geoffreydhug...@gmail.com wrote: I guess I'm going to have too. I just need to work out how to return the first invalid field so I can set the focus. On Sep 16, 8:16 am, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Well, you can set focusInvalid: false and implement invalidHandler to focus the first field. That should do the trick. Jörn On Tue, Sep 15, 2009 at 10:01 PM, Geoffrey geoffreydhug...@gmail.com wrote: And what if you enter an invalid character in an input at the bottom of the field? For example entering a letter in the Conference Dinner input of my sample form. A user is going to miss the error message at the top of the form along with other input errors if there's an error in the last inputs of my example form and is going to have submit multiple times before they may even be aware of other errors. I'd expected jumping to the first invalid input to be standard behaviour. My fault there I guess. On Sep 15, 10:08 pm, Jörn Zaefferer joern.zaeffe...@googlemail.com wrote: Whats wrong with keeping the focus on the active field, if its invalid? If you enter something into the, say, third field, hit enter to submit, then it turns out both that field and another before that are invalid, why move the focus to a different field? Jörn On Tue, Sep 8, 2009 at 4:47 AM, Geoffrey geoffreydhug...@gmail.com wrote: I've been building up my validation using the jquery validation plugin but I can't work out how to get a failed validation to default the focus to the first invalid input rather than to the last selected input. If there is no input field selected, when I submit then a failed validation will focus the cursor on the first field but if the cursor was left in a field and submitted then the focus stays there (if it's invalid) rather than jump to the first invalid input. From what I've read and seen, this is the expected behaviour but not what I want. Is there a way I can get the first invalid field and set the focus to that? A demo of what I have built up so far can be seen at https://webdev2.otago.ac.nz/oihrn2009/ All my jquery validation can be found in https://webdev2.otago.ac.nz/oihrn2009/javascript/document.ready.all.js