Ahh. The problem is that there is NO relation between the two fields:
they're just DOM elements like divs, paragraphs, and iframes. The blur
event of some textbox is _totally_ unrelated to a click event of some
other button.  If you want to enforce some rules between the two
you'll have to code it yourself - the usual way is to check each
individual field on "blur" and when you click the button, re-check all
validation rules.

There are also heaps of validation plugins in the jQuery plugin
repository you might like to look at to simplify validation handling.

On Sep 14, 12:28 pm, "Rick Faircloth" <r...@whitestonemedia.com>
wrote:
> > if you put the focus in the textbox (#id1) then click the button (#id2)
> both
> > events get fired
>
> Jim...
>
> Preventing this occurrence is what I was talking about.  What I do is keep
> the
> submit button disabled until all required fields have been validated on
> blur.
> That way you can't have a field that hasn't been validated and have the
> submit
> button fire, too.  The user has to blur out of the field to achieve
> validation
> and enabling of the submit button.
>
> Am I misunderstanding?
>
> Rick
>
> -----Original Message-----
> From: jquery-en@googlegroups.com [mailto:jquery...@googlegroups.com] On
>
> Behalf Of Mr Speaker
> Sent: Sunday, September 13, 2009 10:07 PM
> To: jQuery (English)
> Subject: [jQuery] Re: event coordination problem
>
> I pasted your code into a new HTML doc and it ran as expected: if you
> put the focus in the textbox (#id1) then click the button (#id2) both
> events get fired (blur event fires first, click event fires second).
>
> Is there anything else in your page? Are you getting any JS errors?
>
> On Sep 13, 4:27 am, jhm <jmay...@gmail.com> wrote:
> > Not sure how this helps, and in fact I'm pretty much already doing
> > that. The problem is that if the focus is in the field, when the
> > button is clicked I get the blur event only and not the click event on
> > the button.
>
> > If you try the code in the OP, you'll see this happening. Remember to
> > click into the text box before clicking on the button.
>
> > I need the click event for sure. I could live without the blur event
> > in this situation, but I'd also like to understand the dynamics of
> > what is happening for the future.
>
> > Jim
>
> > On Sep 12, 10:39 am, "Rick Faircloth" <r...@whitestonemedia.com>
> > wrote:
>
> > > How about setting the field to "invalid" to start with and
> > > force the user to blur the field for a validation routine
> > > to declare it valid.
>
> > > Rick
>
> > > -----Original Message-----
> > > From: jquery-en@googlegroups.com [mailto:jquery...@googlegroups.com] On
>
> > > Behalf Of jhm
> > > Sent: Saturday, September 12, 2009 1:04 PM
> > > To: jQuery (English)
> > > Subject: [jQuery] event coordination problem
>
> > > Hi-
>
> > > In a form, I'm trying to validate a field when they move off it. But
> > > this causes a problem when the field has the focus and they click a
> > > button to process the form. In this case, only the field's blur event
> > > (or change event) gets fired and nothing for the button click event.
>
> > > Seems like a reasonable thing to want to do, so I figure I'm missing
> > > something in they way I've coded this. Any suggestions?
>
> > >  Here's the very simple code that exhibits the behavior:
>
> > > <head>
> > >     <script type="text/javascript" src="./js/jquery.js"></script>
> > >     <script type="text/javascript">
>
> > >         $(document).ready( function() {
> > >                 $('#id1').blur( function() {
> > >                         alert('blur in id1');
> > >                 });
>
> > >                 $('#id2').click( function() {
> > >                         alert('click in id2');
> > >                 });
> > >         });
> > >         </script>
> > > </head>
>
> > > <body>
> > > </body>
> > >         <input type="text" value="Sample Text" name="id1" id="id1" />
> > >         <input type="button" name="Finish" value="Finish" id="id2" />
> > > </html>
>
>

Reply via email to