Help with checkbox resetting radio values

Discussion in 'JavaScript' started by errcricket, Dec 28, 2009.

  1. #1
    I have a page where a user can select (via check boxes) several categories. Each category is related to a set of possible options (radio buttons) that have numeric values. When one of the options (radio button) is selected, the amount will appear in a text box (input type="text"). The numeric value in the text box will update depending on what category options are selected. However, when the checkbox is deselected, the radio boxes in the <div> are not displayed and I need to remove (reset) the radio button values from the value seen in the text box.

    Here are some snippets to hopefully expound on what I would like to do.
    
    <script type="text/javascript"> 
    var amountNotice = 0;
    
    function notice(options)	
    {						
    	amountNotice = parseInt(options);
    	calculateTotal(); 
    }	
    
    function calculateTotal()
    {
    	totalAmount = amountNotice;
    	document.getElementById("total").value = totalAmount.toFixed(2); 	
    }	 
    
    function toggle(chkbox, group, associatedValues) 
    { 
        var visSetting;
    	if (chkbox.checked == true)
    	 	document.getElementById(group).style.display =  "inline"; 
    	else
    	{
    		document.getElementById(group).style.display =  "none";
    		uncheckRadio(associatedValues);
    	} 
        document.getElementById(group).style.display = visSetting; 
    } 
    
    function uncheckRadio(associatedValues)
    {
    
    	for(var i = 0; i < document.getElementById(associatedValues).length; i++)
    	{
    		if (associatedValues[i].checked == true)
    			associatedValues[i].checked == false;
    	}
    		calculateTotal(); 
    }
    </script>
    
    
    <style type="text/css"> 
    	#groupNotice {display: none} 
    </script>
    .
    .
    <input type="button" onClick="calculateTotal()" value="Calculate"><br>
    <div id="groupNotice">
    	<b>Required Notice</b>:&nbsp;&nbsp;
    	<input type="radio" name="Note" onClick="notice(this.value)" value="0"> None
    	<input type="radio" name="Note" onClick="notice(this.value)" value="2"> Prior Day ($2)
    	<input type="radio" name="Note" onClick="notice(this.value)" value="2"> Prior Call ($2)<br>
    </div>
    <form name="CostEstimate" method="post" action="calculator.php">
    <input type="checkbox" onclick="toggle(this, 'groupNotice', 'Note'); display('groupNotice','inline')" name="Notice" value=""> Notice
    </form
    
    Code (markup):
    Everything works except for my uncheckRadio function - not sure if I am identifying the elements correctly, or if I need a totally new approach. My thinking is that the function must be accessed by the checkbox onClick call. Previously I had tried calling uncheckRadio from the notice function before I recognized is was not an appropriate location. Any assistance is greatly appreciated.

    - c
     
    errcricket, Dec 28, 2009 IP
  2. rkstech

    rkstech Active Member

    Messages:
    195
    Likes Received:
    3
    Best Answers:
    0
    Trophy Points:
    73
    #2
    Have a look at the if (chkbox.checked == true)
    for unchekcking as well
     
    rkstech, Dec 30, 2009 IP
  3. errcricket

    errcricket Peon

    Messages:
    2
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #3
    Thank you for responding rkstech. I discovered my real issue was using document.getElementById when I should have been using document.getElementsByName. It is working swimmingly now.
     
    errcricket, Dec 30, 2009 IP