Solved

Insert value from dropdown into textarea onclick

Posted on 2009-05-15
8
287 Views
Last Modified: 2012-05-07
I have a form (see code snippet) that has a dropdown menu and a textarea. When someone selects something from the dropdown I want to insert it into the textarea.

How would I do this?
<form id="form1" action="" method="post">
	<select name="options">
		<option>Select a template</option>
		<option>Nobody at home</option>
		<option>Something else</option>
	</select>
	<textarea rows="15" cols="57" name="notes"></textarea><br />
	<input type="submit" value="">
</form>

Open in new window

0
Comment
Question by:synergiq
  • 4
  • 2
  • 2
8 Comments
 
LVL 2

Accepted Solution

by:
divstar earned 250 total points
ID: 24394794
Try this javascript function.

The parameter dropdown is the id of the dropdown menu to be chosen from
The parameter textbox is the id of the textbox to be inserted into

In this example I have ran the function when the menu changes using the onchange attribute


...
<head>
<script type="text/javascript">
function setTextbox(dropdown,textbox)
{
	document.getElementById(textbox).value =      document.getElementById(dropdown).value;
}
</script>
</head>
 
<body>
<form id="form1" action="" method="post">
        <select name="options" id="options" onchange="setTextbox('options','notes');">
                <option>Select a template</option>
                <option>Nobody at home</option>
                <option>Something else</option>
        </select>
        <textarea rows="15" cols="57" name="notes" id="notes"></textarea><br />
        <input type="submit" value="Submit">
</form>
</body>
...

Open in new window

0
 
LVL 10

Assisted Solution

by:bugada
bugada earned 250 total points
ID: 24394873
This may be done without changing your layout but by inserting a simple javascript fuinction in your head block
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <title></title>
   <script type="text/javascript">
      window.onload = function() {
         var form = document.getElementById("form1");
         form.options.onchange = function(e) {
            form.notes.value = this.options[this.selectedIndex].text;
            return true;
         }
      }
   </script>
  
  </head>
  <body>
 
<form id="form1" action="" method="post">
        <select name="options">
                <option>Select a template</option>
                <option>Nobody at home</option>
                <option>Something else</option>
        </select>
        <textarea rows="15" cols="57" name="notes"></textarea><br />
        <input type="submit" value="">
</form>
 
  </body>
</html>

Open in new window

0
 
LVL 2

Author Comment

by:synergiq
ID: 24394960
Hi, both solutions work but is it possible to just add the text from the dropdown on to the end of what's in the textarea rather than replacing it?
0
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
LVL 10

Expert Comment

by:bugada
ID: 24394972
of course change line 9 as follows:



form.notes.value += this.options[this.selectedIndex].text;

Open in new window

0
 
LVL 10

Expert Comment

by:bugada
ID: 24394993
and try the code with IE, normally IE has strange effects...
0
 
LVL 2

Expert Comment

by:divstar
ID: 24395025
You may wish to add a new line so that it inserts underneath anything already present

In which case line 9 from bugada's code would be
form.notes.value += '\n'+this.options[this.selectedIndex].text;

Open in new window

0
 
LVL 2

Author Comment

by:synergiq
ID: 24395031
Perfect, thanks. I'll split the points as both solutions worked.
0
 
LVL 10

Expert Comment

by:bugada
ID: 24395059
Thank you, a good decision.
Happy that helped you.
0

Featured Post

Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Building a website can seem like a daunting task to the uninitiated but it really only requires knowledge of two basic languages: HTML and CSS.
This article discusses four methods for overlaying images in a container on a web page
In this tutorial viewers will learn how to style transparent/translucent elements using alpha transparency in CSS Start with a normal styled element, such as a div.: Define its "background-color" property as "rgba (255, 255, 255, .5): The numbers in…
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question