restoring selections in radio buttons

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • andersond
    New Member
    • Feb 2007
    • 110

    restoring selections in radio buttons

    I have a webpage that uses visible and hidden tables to create the effect of going from screen to screen. Because a user might want to go back and change previous selections I have a "previous page" button that goes back to a table that has been made hidden. Text fields retain their values; but, option buttons do not. I am having problems restoring the original selections to the option buttons. I can post the code; but, the javascript functions are very long. If I have a pair of option buttons where the options are Yes and No I assign values to the variable names based on whether or not the "checked" option is true (eg: document.screen One.nearWater[0].checked=true;) . However when I go back to the "page" I cannot restore the original selection by reversing the process. For example, using the example above, if option "0" is "No" the following code does not produce the correct result.
    Code:
    if(document.getElementById('nearWater').value=="No"){
    document.screenOne.nearWater[0].checked=true;
    } else if(document.getElementById('nearWater').value=="Yes"){
    document.screenOne.nearWater[1].checked=true;
    }
    How can I restore the original selections to radio buttons?
  • acoder
    Recognized Expert MVP
    • Nov 2006
    • 16032

    #2
    If the "page" (div/table) is simply hidden (probably by setting style.display), then it shouldn't affect any elements within the container element. Can you show the code for when you hide a container element, e.g. the function called when clicking Next.

    Comment

    • andersond
      New Member
      • Feb 2007
      • 110

      #3
      This is the code for the first "page"

      Code:
      <script type="text/javascript">
      <!-- 
      function question(x){
      	var itemNumber = x; // question number
      
      ...
      
      	if(x=="1"){
      		var y = document.getElementById('pState'); 
      		var z = y.options[y.selectedIndex].value; //value from dropdown
      		document.getElementById('propertyST').value = z;
      		
      		if (z=='IN' || z=='IL' || z=='KY' || z=='MO' || z=='OH' || z=='TN'){
      			status="ELIGIBLE";
      		} else {
      			status="REFERRED";
      		}
      		
      			if(document.getElementById('pState').value=="AL"){
      				document.getElementById('propertyState').value="Alabama";
      			} else if(document.getElementById('pState').value=="AZ"){
      				document.getElementById('propertyState').value="Arizona";
      			} else if(document.getElementById('pState').value=="AR"){
      				document.getElementById('propertyState').value="Arkansas";
      			} else if(document.getElementById('pState').value=="CA"){
      				document.getElementById('propertyState').value="California";
      			} else if(document.getElementById('pState').value=="CO"){
      				document.getElementById('propertyState').value="Colorado";
      			} else if(document.getElementById('pState').value=="CT"){
      				document.getElementById('propertyState').value="Connecticut";
      			} else if(document.getElementById('pState').value=="DE"){
      				document.getElementById('propertyState').value="Delaware";
      			} else if(document.getElementById('pState').value=="DC"){
      				document.getElementById('propertyState').value="District of Columbia";
      			} else if(document.getElementById('pState').value=="FL"){
      				document.getElementById('propertyState').value="Florida";
      			} else if(document.getElementById('pState').value=="GA"){
      				document.getElementById('propertyState').value="Georgia";
      			} else if(document.getElementById('pState').value=="ID"){
      				document.getElementById('propertyState').value="Idaho";
      			} else if(document.getElementById('pState').value=="IL"){
      				document.getElementById('propertyState').value="Illinois";
      			} else if(document.getElementById('pState').value=="IN"){
      				document.getElementById('propertyState').value="Indiana";
      			} else if(document.getElementById('pState').value=="IA"){
      				document.getElementById('propertyState').value="Iowa";
      			} else if(document.getElementById('pState').value=="KS"){
      				document.getElementById('propertyState').value="Kansas";
      			} else if(document.getElementById('pState').value=="KY"){
      				document.getElementById('propertyState').value="Kentucky";
      			} else if(document.getElementById('pState').value=="LA"){
      				document.getElementById('propertyState').value="Louisiana";
      			} else if(document.getElementById('pState').value=="ME"){
      				document.getElementById('propertyState').value="Maine";
      			} else if(document.getElementById('pState').value=="MD"){
      				document.getElementById('propertyState').value="Maryland";
      			} else if(document.getElementById('pState').value=="MA"){
      				document.getElementById('propertyState').value="Massachusetts";
      			} else if(document.getElementById('pState').value=="MI"){
      				document.getElementById('propertyState').value="Michigan";
      			} else if(document.getElementById('pState').value=="MN"){
      				document.getElementById('propertyState').value="Minnesota";
      			} else if(document.getElementById('pState').value=="MS"){
      				document.getElementById('propertyState').value="Mississippi";
      			} else if(document.getElementById('pState').value=="MO"){
      				document.getElementById('propertyState').value="Missouri";
      			} else if(document.getElementById('pState').value=="MT"){
      				document.getElementById('propertyState').value="Montana";
      			} else if(document.getElementById('pState').value=="NC"){
      				document.getElementById('propertyState').value="North Carolina";
      			} else if(document.getElementById('pState').value=="ND"){
      				document.getElementById('propertyState').value="North Dakota";
      			} else if(document.getElementById('pState').value=="NE"){
      				document.getElementById('propertyState').value="Nebraska";
      			} else if(document.getElementById('pState').value=="NH"){
      				document.getElementById('propertyState').value="New Hampshire";
      			} else if(document.getElementById('pState').value=="NJ"){
      				document.getElementById('propertyState').value="New Jersey";
      			} else if(document.getElementById('pState').value=="NM"){
      				document.getElementById('propertyState').value="New Mexico";
      			} else if(document.getElementById('pState').value=="NM"){
      				document.getElementById('propertyState').value="New Mexico";
      			} else if(document.getElementById('pState').value=="NY"){
      				document.getElementById('propertyState').value="New York";
      			} else if(document.getElementById('pState').value=="OH"){
      				document.getElementById('propertyState').value="Ohio";
      			} else if(document.getElementById('pState').value=="OK"){
      				document.getElementById('propertyState').value="Oklahoma";
      			} else if(document.getElementById('pState').value=="OR"){
      				document.getElementById('propertyState').value="Oregon";
      			} else if(document.getElementById('pState').value=="PA"){
      				document.getElementById('propertyState').value="Pennsylvania";
      			} else if(document.getElementById('pState').value=="RI"){
      				document.getElementById('propertyState').value="Rhode Island";
      			} else if(document.getElementById('pState').value=="SC"){
      				document.getElementById('propertyState').value="South Carolina";
      			} else if(document.getElementById('pState').value=="SD"){
      				document.getElementById('propertyState').value="South Dakota";
      			} else if(document.getElementById('pState').value=="TN"){
      				document.getElementById('propertyState').value="Tennessee";
      			} else if(document.getElementById('pState').value=="TX"){
      				document.getElementById('propertyState').value="Texas";
      			} else if(document.getElementById('pState').value=="UT"){
      				document.getElementById('propertyState').value="Utah";
      			} else if(document.getElementById('pState').value=="VT"){
      				document.getElementById('propertyState').value="Vermont";
      			} else if(document.getElementById('pState').value=="VA"){
      				document.getElementById('propertyState').value="Virginia";
      			} else if(document.getElementById('pState').value=="WA"){
      				document.getElementById('propertyState').value="Washington";
      			} else if(document.getElementById('pState').value=="WV"){
      				document.getElementById('propertyState').value="West Virginia";
      			} else if(document.getElementById('pState').value=="WI"){
      				document.getElementById('propertyState').value="Wisconsin";
      			} else if(document.getElementById('pState').value=="WO"){
      				document.getElementById('propertyState').value="Wyoming";
      			}
      			document.getElementById('tableCompletionFeedback').background="Images/completionBLUE3%.jpg";
      			document.getElementById('percent').innerHTML="3% complete";
      
      			document.getElementById('propST').value=document.getElementById('pState').value;
      			document.getElementById('percent').style.fontFamily="Arial Narrow"; 
      			document.getElementById('percent').style.fontSize="10pt";
      			document.getElementById('percent').align="right";
      			 
      			document.getElementById('tableRecap').style.visibility="visible";
      			
      			document.getElementById('cellOutput01').style.height="10";
      			document.getElementById('cellOutput02').style.height="10";
      			document.getElementById('cellOutput03').style.height="10";
      			document.getElementById('cellOutput04').style.height="10";
      			document.getElementById('cellOutput05').style.height="10";
      			
      			document.getElementById('cellOutput01').style.fontFamily="Arial Narrow"; 
      			document.getElementById('cellOutput01').style.fontSize="10pt";
      			document.getElementById('cellOutput01').innerHTML="Property is located in "+document.getElementById('propertyState').value;
      			document.screenOne.pState.style.backgroundColor="#FFFFFF";
      			
      			document.screenOne.nearWater1.disabled = false;
      			document.screenOne.nearWater2.disabled = false;
      
      			document.getElementById('nearWater1').focus();
      		}
      			
      	if(x=="2"){
      			document.getElementById('tableCompletionFeedback').background="Images/completionBLUE6%.jpg";
      			document.getElementById('percent').innerHTML="6% complete";		
      			document.getElementById('nearWater').value=document.getElementById('nearH2O').value;
      				
      			document.getElementById('percent').style.fontFamily="Arial Narrow"; 
      			document.getElementById('percent').style.fontSize="10pt";
      			document.getElementById('percent').align="right";
       
      			document.getElementById('cellOutput02').style.fontFamily="Arial Narrow"; 
      			document.getElementById('cellOutput02').style.fontSize="10pt";
      			var limit=document.screenOne.nearH2O.length;
      			for (i=0;i<limit;i++) {
      			if (document.screenOne.nearH2O[0].checked==true) { // NO
      				status="REFERRED";
      				document.getElementById('cellOutput02').innerHTML="Property is not located within 10 miles of an ocean, bay, or waterway";
      			} else if (document.screenOne.nearH2O[1].checked==true) { // YES
      				document.getElementById('cellOutput02').innerHTML="Property is located within 10 miles of an ocean, bay or waterway";
      				}
      			}
      			document.screenOne.mVacant.disabled = false;
      			document.screenOne.mVacant.style.border="1px solid #003300"; 
      			scroll(0,0);
      			document.screenOne.mVacant.focus();
      		}
      			
      	if(x=="3"){
      			document.getElementById('tableCompletionFeedback').background="Images/completionBLUE9%.jpg";
      			document.getElementById('percent').innerHTML="9% complete"; 			
      			document.getElementById('monthsVacant').value=document.getElementById('mVacant').value;
      			document.getElementById('cellOutput03').style.fontFamily="Arial Narrow"; 
      			document.getElementById('cellOutput03').style.fontSize="10pt";
      			document.getElementById('cellOutput03').innerHTML="Property has been vacant "+rtrim(document.getElementById('monthsVacant').value)+" months";
      			if(document.getElementById('mVacant').value > 24){status="REFERRED"}
      			document.getElementById('percent').style.fontFamily="Arial Narrow"; 
      			document.getElementById('percent').style.fontSize="10pt";
      			document.getElementById('percent').align="right";
      
      			document.screenOne.mVacant.style.backgroundColor="#FFFFFF";
      			document.screenOne.bankrupt1.disabled = false;
      			document.screenOne.bankrupt2.disabled = false;
      			document.getElementById('bankrupt1').focus();
      		}
      			
        	if(x=="4"){
      			document.getElementById('tableCompletionFeedback').background="Images/completionBLUE12%.jpg";
      			document.getElementById('percent').innerHTML="12% complete";  	
      			document.getElementById('bankruptcy').value=document.getElementById('bankrupt').value;
      			document.getElementById('percent').style.fontFamily="Arial Narrow"; 
      			document.getElementById('percent').style.fontSize="10pt";
      			document.getElementById('percent').align="right";
       
      			document.getElementById('cellOutput04').style.fontFamily="Arial Narrow"; 
      			document.getElementById('cellOutput04').style.fontSize="10pt";
      			
      			var limit=document.screenOne.bankrupt.length;
      			for (i=0;i<limit;i++) {
      			if (document.screenOne.bankrupt[0].checked==true) { // NO
      				status="REFERRED";
      				document.getElementById('cellOutput04').innerHTML="Risk has never filed bankruptcy";
      			} else if (document.screenOne.bankrupt[1].checked==true) { // YES
      				document.getElementById('cellOutput04').innerHTML="Risk has a previous bankruptcy";
      				}
      			}
      			document.getElementById('cD1').disabled = false;
      			document.getElementById('cD2').disabled = false;
      			document.getElementById('cD3').disabled = false;
      			
      			document.getElementById('desiredCoverage').focus();
      		}
      			
        	if(x=="5"){
      			document.getElementById('tableCompletionFeedback').background="Images/completionBLUE15%.jpg";
      			document.getElementById('percent').innerHTML="15% complete"; 			
      			document.getElementById('percent').style.fontFamily="Arial Narrow"; 
      			document.getElementById('percent').style.fontSize="10pt";
      			document.getElementById('percent').align="right";
      
      			document.getElementById('cellOutput05').style.fontFamily="Arial Narrow"; 
      			document.getElementById('cellOutput05').style.fontSize="10pt";
      			var limit=document.screenOne.desiredCoverage.length;
      			for (i=0;i<limit;i++) {
          			if (document.screenOne.desiredCoverage[0].checked==true) { // Property ONLY
          				document.getElementById('coverageDesired').value="property";
          				document.getElementById('tablePropertyCoverage').style.visibility="visible";
          				document.getElementById('cellOutput05').innerHTML="Applicant has requested property coverage ONLY";
          
          			} else if (document.screenOne.desiredCoverage[1].checked==true) { // Liability ONLY
          				document.getElementById('coverageDesired').value="liability";
          				document.getElementById('tableLiabilityCoverage').style.visibility="visible";
          				document.getElementById('cellOutput05').innerHTML="Applicant has requested liability coverage ONLY";
          				
          			} else if (document.screenOne.desiredCoverage[2].checked==true) { // both
          				document.getElementById('coverageDesired').value="both";
          				document.getElementById('tablePropertyCoverage').style.visibility="visible";
          				document.getElementById('tableLiabilityCoverage').style.visibility="visible";
          				document.getElementById('cellOutput05').innerHTML="Applicant has requested both Property and Liability coverage";
      				}
      			}
      			document.screenOne.B1.disabled = false;  
      			scroll(0,0);
      			document.getElementById('B1').focus();
      		}
      Here's the code for the first "continue" button and the swapnode function.

      Code:
      <script type="text/javascript; version=1.5">
      Node.prototype.swapNode = function (node) {
        var nextSibling = this.nextSibling;
        var parentNode = this.parentNode;
        node.parentNode.replaceChild(this, node);
        parentNode.insertBefore(node, nextSibling);
        }  
      </script>
      
      if(x=="clear1"){
        document.getElementById('tableContainer1').swapNode   document.getElementById('tableContainer0'));
      document.getElementById('tableContainer1').style.visibility="hidden";
      document.getElementById('tableContainer0').style.visibility="visible";
      document.getElementById('tableContainer0').style.visibility="visible";
      document.getElementById('insuredName').focus();
      			}
      And, here's the code for the first previous page button

      Code:
      function previousPage(x){// returns user to the previous page
      	if(x=='P1'){
      				document.getElementById('tableContainer1').swapNode(document.getElementById('tableContainer0'));
      				document.getElementById('tableContainer0').style.visibility="hidden";
      				document.getElementById('tableContainer1').style.visibility="visible";
      				if(document.getElementById('nearH2O').value=="NO"){
      					document.screenOne.nearH2O[0].checked=true;
      				} else if(document.getElementById('nearH2O').value!="NO"){
      					document.screenOne.nearH2O[1].checked=true;
      				}
      				setTimeout("document.getElementById('pState').focus()",100);
      		}
      I know you didn't expect this much code; but the whole script section is 1658 lines.

      Comment

      • acoder
        Recognized Expert MVP
        • Nov 2006
        • 16032

        #4
        I'm not sure why you're using swapNode here and why the radio buttons are reset, but the problem can be solved by getting the set of elements and then indexing them:
        Code:
        var nearH2Oval = document.getElementById('nearH2O').value;
        var nearH2O = document.screenOne.nearH2O;
        if (nearH2Oval == "NO") {
            nearH2O[0].checked=true;
        } ...

        Comment

        Working...