Redirects for APEX Tabs instead of page submits

With APEX Tabs you may not want the page to be submitted each time the user clicks on a tab. If you look at the link for the tabs they look like: javascript:doSubmit(‘xxxx’); Where “xxx” is the name of the tab. “doSubmit” will submit the page and could trigger page computations, validations, and processes. If all you want to do is use the tabs as a form of navigation (i.e. when you click on a tab it redirects to another page) then this could cause some problems.

To avoid triggering Page Processing on tabs you can modify all the conditions on your Page Process (this could be very long) or change the link. They’re multiple ways to change the links, here’s a simple one using jQuery.

Here’s a link to the demo: http://apex.oracle.com/pls/otn/f?p=20195:2500. Note, in the demo I don’t trigger the javascript to change the link automatically so you can see what they look like before and after changing the links.

- Create an Application Process
Note: You may want to only apply this to certain pages depending on the use case

Name: AP_UNSUBMIT_TABS
Process Point: On Load: After Header

BEGIN
  FOR x IN (SELECT tab_name,
                   tab_page,
                      '' tabinfo
              FROM apex_application_tabs t
             WHERE application_id = :app_id)
  LOOP
    HTP.p (x.tabinfo);
  END LOOP;
END;

- Create a HTML region
Note: You’ll need to install the jQuery JS file in Shared Components / Static Files