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