Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Use Javascript, find if page is loaded for the first time, or due to errors

  • crafter
  • crafter's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
9 years 11 months ago #106967 by crafter
Hi all

Is there a way, using Javascript, to determine if page is being loaded for the first time, or due to errors on the page.

I have a small Javascript function that attaches to the page load, so that a message appears for a few seconds before the page is shown. If the page is completed with validation errors, the Javascript is reloaded and the message is displayed again.

However, I would want the message to not display if the page is being returned to due to validation errors.

How can I determine if a page is being reloaded due to errors.
The topic has been locked.
  • crafter
  • crafter's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
9 years 11 months ago - 9 years 11 months ago #106968 by crafter
Actually, I may have found a solution.

The secret may be in these lines in the survey_runtime.js file
Code:
function showStartPopups(){
    if(typeof showpopup=="undefined"){showpopup=1;}
    if(typeof startPopups=="undefined"){startPopups=[];}
    if(showpopup){
        $.each(startPopups,function(key, text){
            alert($("<div/>").html(text).text());// Parse HTML because of &amp;#039;
        });
    }
}

A page loaded with errors contains this code (as an example)
Code:
showpopup=1;
startPopups=["One or more mandatory questions have not been answered. You cannot proceed until these have been completed.","One or more questions have not been answered in a valid manner. You cannot proceed until these answers are valid."];
whereas a page with no errors contains an empty startPopups array
Code:
showpopup=1;
startPopups=[]

therefore, checking for an empty startPopups array will get me the solution I require, it seems.
Last edit: 9 years 11 months ago by crafter. Reason: removed data from startPopups
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
9 years 11 months ago #106972 by DenisChenu
And you can replace showStartPopups function in template.js to test it.

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.

Lime-years ahead

Online-surveys for every purse and purpose