Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Insert value from dropdown into textarea onclick

Posted on 2009-05-15
8
Medium Priority
?
315 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
  • 2
8 Comments
 
LVL 2

Accepted Solution

by:
divstar earned 1000 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 1000 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
Build and deliver software with DevOps

A digital transformation requires faster time to market, shorter software development lifecycles, and the ability to adapt rapidly to changing customer demands. DevOps provides the solution.

 
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

Enroll in September's Course of the Month

This month’s featured course covers 16 hours of training in installation, management, and deployment of VMware vSphere virtualization environments. It's free for Premium Members, Team Accounts, and Qualified Experts!

Question has a verified solution.

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

When crafting your “Why Us” page, there are a plethora of pitfalls to avoid. Follow these five tips, and you’ll be well on your way to creating an effective page.
This article discusses how to implement server side field validation and display customized error messages to the client.
In this tutorial viewers will learn how to position items using CSS's three positioning types Create a new HTML document with an internal stylesheet.: Create another div in CSS and name it Absolute : Type "position:absolute;" and "top:10px; left:50p…
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…

664 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