Form controls and events
Dynamically adding paragraphs from input
An HTML onclick
attribute is an event. It determines what function executes when a button is clicked. Of course, there are many event types, but the most used (besides onclick
) is onchange
, which defines what happens when, e.g., the <input type="text">
control's value gets changed (no need for a confirm button). When using form controls with JavaScript, they do not need to be enclosed within the <form>
tag.
<input type="text" id="textInput" style="float: left; margin-right: 10px;">
<input type="button" value="Add" onclick="add()">
<h4 style="margin-top: 10px; clear: both;">Values</h4>
<div id="container"></div>
<script>
function add() {
let t = document.getElementById("textInput").value // accessing the value of an "<input type="text">" form control
let container = document.getElementById("container")
let newValue = document.createElement("p")
newValue.className = "newValue"
newValue.style.margin = "0px"
newValue.innerText = t
container.insertBefore(newValue, container.firstChild) // inserting the new value at the top of the container (as its "firstChild")
}
</script>
Values
Form controls - example
<div id="example">
<p>Background color</p>
<button id="orange" onclick="color('orange')">Orange</button>
<button id="lightblue" onclick="color('lightblue')">Lightblue</button>
<button id="green" onclick="color('green')">Green</button>
<p>Font color</p>
<select name="font" id="font" onclick="font(this.value)">
<option value="black">Black</option>
<option value="red">Red</option>
<option value="yellow">Yellow</option>
<option value="purple">Purple</option>
</select>
<p>Font size, e.g., 200%</p>
<input type="text" id="size" name="size" value="100%" onchange="font_size(this.value)">
<p>Change the list style type</p>
<input type="radio" id="disc" name="r" value="disc" onclick="style_type(this.value)"><label for="disc">Disc</label>
<input type="radio" id="square" name="r" value="square" onclick="style_type(this.value)"><label for="square">Square</label>
<input type="radio" id="circle" name="r" value="circle" onclick="style_type(this.value)"><label for="circle">Circle</label>
<ul id="list">
<li>a</li>
<li>b</li>
<li>c</li>
</ul>
<input type="checkbox" id="border" name="border" onclick="add_border()"><label for="border">Add border to the <code><div></code></label>
</div>
<script>
function color(c){document.querySelector("#example").style.backgroundColor = c}
function font(c){document.querySelector("#example").style.color = c}
function font_size(c){document.querySelector("#example").style.fontSize = c}
function style_type(c){document.querySelector("#list").style.listStyleType = c}
function add_border() {
let img = document.querySelector("#example")
if (document.getElementById("border").checked)
img.style.border = "5px solid black"
else
img.style.borderWidth = "0px"
}
</script>
Background color
Font color
Font size, e.g., 200%
Change the list style type
- a
- b
- c