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
Solved

JavaScript form question

Posted on 2016-08-23
5
81 Views
Last Modified: 2016-08-30
Hi. I'm trying to learn javascript. I have a very simple form (the code is shown below) and there is a specific thing I want to accomplish.
     This is what I want to achieve: Someone enters a value in the text box and chooses a number from the radio buttons. Then when they click the "submit" button, both those values get pasted at the end of their respective sentences at the bottom.
     Here is the code so far:

<html>
<head><title>Test Form</title></head>

<body>
<form>
Enter first name here <input type="text" name="FirstName" value="First Name"><br><br>
Pick a number
<input type="radio" name="choices" value="One">One&nbsp;&nbsp;
<input type="radio" name="choices" value="Two">Two&nbsp;&nbsp;
<input type="radio" name="choices" value="Three">Three<br><br>
<input type="submit" value="Submit Entries">
</form>

<p>Your first name is: </p>
<p>The number you picked is: </p>
</body></html>

Open in new window

0
Comment
Question by:john8217
  • 2
  • 2
5 Comments
 
LVL 52

Assisted Solution

by:Scott Fell, EE MVE
Scott Fell,  EE MVE earned 250 total points
ID: 41767847
I have this well commented but I suggest you take the course on jquery https://www.codecademy.com/learn/jquery. Before you do that, make sure you can run through the entire course on html and css, otherwise you will be lost. I also suggest doing the javascript course first before you go through jquery.  


http://jsbin.com/poqoxuhaki/edit?html,output
<html>
<head><title>Test Form</title></head>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script>
  $(function(){ // run when page loads
  $('#submit').on('click',function(e){ // list for click of submit button
     e.preventDefault(); // prevent form from being submited
    var name = $('input[name="FirstName"]').val(); // value of input
    var choices = $('input[name="choices"]:checked').val(); // value of radio
     $('.getName').text(name); // place name value in the span class getName
     $('.getNumber').text(choices); // place radio value in span class getNumber
  });
  
});
</script>
  
<body>
<form>
Enter first name here <input type="text" name="FirstName" value="First Name"><br><br>
Pick a number
<input type="radio" name="choices" value="One">One&nbsp;&nbsp;
<input type="radio" name="choices" value="Two">Two&nbsp;&nbsp;
<input type="radio" name="choices" value="Three">Three<br><br>
<input id="submit" type="submit" value="Submit Entries">
</form>

  <p>Your first name is: <span class="getName"></span> </p>
<p>The number you picked is: <span class="getNumber"></span>  </p>
</body>


</html>

Open in new window

2
 
LVL 19

Accepted Solution

by:
Albert Van Halen earned 250 total points
ID: 41768372
While Scotts answer is correct, I'd like to add a plain javascript solution to this as well.

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta charset="utf-8" />
	<title></title>
	<script>
		window.onload = function () {
			document.querySelector('form').onsubmit = function () {
				var choosenName = document.querySelector('input[name="FirstName"]').value;
				var choosenNumber = document.querySelector('input[name="choices"]:checked');

				document.getElementById('choosenName').innerHTML = choosenName;
				if (choosenNumber)
					document.getElementById('choosenNumber').innerHTML = choosenNumber.value;

				return false; // prevent the form from submission in order to show values in html
			};
		}
	</script>
</head>
<body>
	<form>
		Enter first name here <input type="text" name="FirstName" value="First Name"><br><br>
		Pick a number
		<input type="radio" name="choices" value="One">One&nbsp;&nbsp;
		<input type="radio" name="choices" value="Two">Two&nbsp;&nbsp;
		<input type="radio" name="choices" value="Three">Three<br><br>
		<input type="submit" value="Submit Entries">
	</form>

	<p>Your first name is: <span id="choosenName"></span></p>
	<p>The number you picked is: <span id="choosenNumber"></span></p>
</body>
</html>

Open in new window

1
 

Author Comment

by:john8217
ID: 41775607
Thank you to both of you. This is exactly what I wanted; the older, JavaScript way and the newer jQuery way. Now I can examine them together to see how both methods do this same thing. As illogical as this sounds, I was slightly more interested in seeing the JavaScript method because I kind of have an obsession with trying to understand it. But I definitely preferred to get both methods, which I got. Thanks guys!
0
 

Author Comment

by:john8217
ID: 41775610
OK, I apparently no longer know how to close out a question. Can someone help me out (again)?
0
 
LVL 52

Expert Comment

by:Scott Fell, EE MVE
ID: 41775724
Do you see the "Best" and "Assisted" solution button/links in each answer?

http://support.experts-exchange.com/customer/portal/articles/2527982
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

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

Suggested Solutions

This article describes how to create custom column layout styles for Bootstrap. The article uses 5 columns to illustrate the concept, but the principle can be extended to any number of columns.
This article explains how to prepare an HTML email signature template file containing dynamic placeholders for users' Azure AD data. Furthermore, it explains how to use this file to remotely set up a department-wide email signature policy in Office …
In this tutorial viewers will learn how to style a corner ribbon overlay for an image using CSS Create a new class by typing ".Ribbon":  Define the class' "display:" as "inline-block": Define its "position:" as "relative": Define its "overflow:" as …
The viewer will learn the benefit of using external CSS files and the relationship between class and ID selectors. Create your external css file by saving it as style.css then set up your style tags: (CODE) Reference the nav tag and set your prop…

856 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