You could try this: always return false in the select handler
(basically prevent tab switching), remember the clicked tab and if the
user says "Yes" activate the tab manually (untested, I may have messed
up parentheses):
var TabSolicitud = $('#SolicitudAguaTabContainer > ul').tabs({
select: function(e, ui) {
$("#InfoDialog").html("Do you want to save changes?");
$("#InfoDialog").dialog({
...
buttons: {
"Yes": function() {
$(this).dialog("close");
SaveChanges();
TabSolicitud.tabs('select', ui.index);
},
"NO": function() {
$(this).dialog("close");
}
}
});
return false;
}
});
If ui.index doesn't work for - it has been added not too long ago -
you can just use ui.panel.id instead.
--Klaus
On 30 Sep., 19:03, oscarml <[EMAIL PROTECTED]> wrote:
> Hi. Nobody can help me with this issue?
>
> I don´t know if is crearly enough:
>
> On the select propertie of the tab I call a function. This works great
> with validation plugin, due to it returns true or false without user
> action. the problem is when I present a dialog to the user in order to
> determine weather to return true or false. when I launch the dialog,
> it returns true to the select tab event, so despite the dialog launchs
> and wait for user choice, the tab has already changed.
>
> thanks
>
> On 14 sep, 11:51, oscarml <[EMAIL PROTECTED]> wrote:
>
> > Hi klaus,
>
> > I had already read the FAQ, and as you can see in my code I'm using
> > the select property. This works fine for example if you run a function
> > that returns true or false without asking user anything, but in my
> > case I need the user to choose one option. Then, when I offer the
> > dialog box, the code inside the 'select' property is returning true,
> > before the user press a button.
>
> > Any idea?
>
> > On 1 sep, 06:18, Klaus Hartl <[EMAIL PROTECTED]> wrote:
>
> > > See
> > > FAQ:http://docs.jquery.com/UI/Tabs#...prevent_switching_to_the_tab_on_cli...
>
> > > --Klaus
>
> > > On Aug 31, 5:23 pm,oscarml<[EMAIL PROTECTED]> wrote:
>
> > > > Hi to everybody,
>
> > > > I'm trying to control tab switching depending on user answer to a
> > > > dialog. Here is my code;
>
> > > > var TabSolicitud = $('#SolicitudAguaTabContainer > ul').tabs({
> > > > select: function(e, ui){
> > > > $("#InfoDialog").html("Do you want to save
> > > > changes?");
> > > > $("#InfoDialog").dialog({
> > > > modal: true,
> > > > addClass: 'ModalInfo',
> > > > resizable: false,
> > > > title: "<img
> > > > src='imagenes/messagebox_info.png' class='img_title' /> ",
>
> > > > overlay: {
> > > > opacity: 0.5,
> > > > background: "black"
> > > > },
> > > > buttons: {
> > > > "Yes": function() {
> > > >
> > > > $(this).dialog("close");
> > > > SaveChanges();
> > > > },
> > > > "NO": function() {
> > > >
> > > > $(this).dialog("close");
> > > > return false;
> > > > }
>
> > > > });
>
> > > > The problem is that when I show the dialog, the tab switched to the
> > > > selected one. It doesn´t wait until it knows the answer of the user.
>
> > > > What could I do?