Cold Fusion Tips-N-Tricks
Changing form fields in a different frame

If you need to change form fields in one frame based of what a user selectes in another frame, here's a basic example on how to do so, all using plain html and Javascript. There are three files:
1. Frames.html    Defines the layout of the frames
2. Left.htmlCreates a dropdown selection box and the Javascript that is used to populate the Right frame
3. Right.htmlCreates two text fields that are populated by the Javascript in the left frame

Simply copy-n-paste these files onto your ISP and jump to Frames.html to see it in action or use it as a guide.


Example HTML/CFML code:
<!--- Frames.html --->
<frameset  cols="50%,*">
    <frame name="Left" src="Left.html" marginwidth="10" marginheight="10" scrolling="auto" frameborder="0">
    <frame name="Right" src="Right.html" marginwidth="10" marginheight="10" scrolling="auto" frameborder="0">
</frameset>



<!--- Left.html --->
<html>
<head>
<script language="Javascript1.2">
function PopulateRightForm()
{
  // Get the index of the drop-down box
  var idx=document.LeftForm.LeftDropdown.selectedIndex;
  // Get the value of the selected item of the dropdown box
  var n=document.LeftForm.LeftDropdown.options[idx].value;
  // Get the text of the selected item of the dropdown box
  var t=document.LeftForm.LeftDropdown.options[idx].text;
  // Populate the values of the text boxes in the right frame
  parent.frames['Right'].document.RightForm.RightText.value=t;
  parent.frames['Right'].document.RightForm.RightValue.value=n;
}
</script>
</head>
<body bgcolor="FFFFFF">
<form name="LeftForm">
Select a number:
<select name="LeftDropdown" size="1" onChange="PopulateRightForm()">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
  <option value="4">Four</option>
  <option value="5">Five</option>
</select>
</form>
</body>
</html>



<!--- Right.html --->
<html>
<body bgcolor="FFFFFF">
<form name="RightForm">
Text passed from left form: <input type="Text" name="RightText"><br>
Value passed from left form: <input type="Text" name="RightValue">
</form>
</body>
</html>


Return to the Cold Fusion Tips-N-Tricks topic list