Recently I've been reading about classes in JavaScript and decided to code this simple form to test them out. Even if the code works I am still pretty sure I lack understanding of classes and other js utilities, for example:
- did I need to use constructor in this class? if not when should I use it?
- is there a more efficient way to append multiple elements to the page?
- is the
tryandcatchused properly in this case? - generally speaking - is it correct example of where i should be using classes at all?
I'm not concerned with the looks of it but with functionality. Thanks for your help.
const outp = document.getElementById('err');
class data{
constructor(email, url, number){
this.email = email;
this.url = url;
this.number = number;
}
static append(){
var par = document.createElement('P');
var em = document.createTextNode(email.value);
var ur = document.createTextNode(url.value);
var num = document.createTextNode(number.value);
par.appendChild(em);
par.appendChild(ur);
par.appendChild(num);
document.body.appendChild(par);
}
}
document.getElementById('submit').addEventListener('click', () => {
outp.innerHTML = "";
let email = document.getElementById('email').value;
let url = document.getElementById('url').value;
let number = document.getElementById('number').value;
try{
if(email == '' || url == '' || number == '' ) throw "Empty";
data.append();
}
catch(err){
outp.innerHTML = err;
}
})
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<link type="text/css" rel="stylesheet" href="style.css" />
<title></title>
</head>
<body>
<main>
<label>
<span>Email</span>
<input type="email" id="email" required />
</label><br>
<label>
<span>Url</span>
<input type="url" id="url" required />
</label><br>
<label>
<span>Number</span>
<input type="number" id="number" required />
</label>
<button type="button" id="submit">Submit</button>
<p id="err"></p>
</main>
<script src="main.js"></script>
</body>
</html>