On Thu, Sep 24, 2009 at 6:10 PM, Tim <[email protected]> wrote:

>
> I have a jquery UI dialog with two buttons: OK and Cancel.  When the
> dialog opens, I want the OK button to be in focus.  Here is my code:
>
> $('#confirmationDialog').dialog({
>        autoOpen: false,
>        width: 400,
>        height: 200,
>        draggable: false,
>        resizable: false,
>        modal: true,
>        closeOnEscape: false,
>        bgiframe: true,
>        buttons: {
>                "Cancel": function() {
>                        $(this).dialog("close");
>                },
>                "OK": function() {
>                        window.location = 'somepage.html';
>                }
>        }
> });
>
> It seems that the jquery UI dialog puts the first defined button (in
> my case, the "Cancel" button) in focus by default.  But I want the
> second button (the "OK" button) to be in focus.
>
> I do not want to change the order of the definition of the buttons,
> because I want the OK button to be on the left, and the buttons
> floated right (as they are by default).
>
> I have read elsewhere on the internet that a fix is to add the
> following to my dialog definition:
>
> open: function() {
>        $(this).parents('.ui-dialog-buttonpane button:eq(0)').focus();
> },
>

That's pretty close. Try this:

open: function() {
  $(this).closest('.ui-dialog').find('.ui-dialog-buttonpane
button:has(OK)').focus();
}

$(this) is the ui-dialog-content element, on which you called .dialog. So
you go up to the ui-dialog with either parents() or closest(). Then back
down with .find() to the button inside the ui-dialog-buttonpane. You can use
:eq(0) or :eq(1), but :has(OK) is nice and semantic.

- Richard

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery UI" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/jquery-ui?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to