Improve client side input validation

This commit is contained in:
sqozz
2017-12-30 22:28:26 +01:00
parent b34348f035
commit e351a61964
3 changed files with 64 additions and 60 deletions

View File

@ -118,56 +118,70 @@ function setButtonToFilename(event) {
});
}
function setError(element) {
element.classList.add("has-error")
element.remove("has-success")
}
function setSuccess(element) {
element.classList.add("has-success")
element.classList.remove("has-error")
}
function validateForm() {
valid = true
file = document.querySelectorAll("input.file")[0]
category = document.querySelectorAll("#category")[0]
subcategory = document.querySelectorAll("#subcategory")[0]
torrentname = document.querySelectorAll("input.name")[0]
description = document.querySelectorAll("textarea.description")[0]
/* TODO: Iterate over these to do dynamic requirement checking
form_groups = document.querySelectorAll(".torrent-form .form-group.required")
required_inputs = document.querySelectorAll(".torrent-form input.required")
required_dropdown = document.querySelectorAll(".torrent-form select.dropdown.required")
required_textarea = document.querySelectorAll(".torrent-form textarea.required")
*/
file = document.querySelector(".torrent-form .file input")
category = document.querySelector("#category")
subcategory = document.querySelector("#subcategory")
torrentname = document.querySelector(".torrent-form .name input")
description = document.querySelector(".torrent-form .description textarea")
file_label = document.querySelector(".torrent-form .file")
category_label = document.querySelector(".torrent-form .category")
name_label = document.querySelector(".torrent-form .name")
description_label = document.querySelector(".torrent-form .description")
if(file.value.length <= 0) {
valid = false
file.parentElement.parentElement.classList.add("has-error")
file.parentElement.parentElement.classList.remove("has-success")
setError(file_label)
} else {
file.parentElement.parentElement.classList.add("has-success")
file.parentElement.parentElement.classList.remove("has-error")
setSuccess(file_label)
}
if(category.value < 0) {
valid = false
category.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.classList.add("has-error")
category.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.classList.remove("has-success")
setError(category_label)
} else {
category.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.classList.add("has-success")
category.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.classList.remove("has-error")
setSuccess(category_label)
}
if(subcategory.value < 0) {
valid = false
category.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.classList.add("has-error")
category.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.classList.remove("has-success")
setError(category_label)
} else {
category.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.classList.add("has-success")
category.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.classList.remove("has-error")
setSuccess(category_label)
}
if(torrentname.value.length <= 0) {
valid = false
torrentname.parentElement.parentElement.classList.add("has-error")
torrentname.parentElement.parentElement.classList.remove("has-success")
setError(name_label)
} else {
torrentname.parentElement.parentElement.classList.add("has-success")
torrentname.parentElement.parentElement.classList.remove("has-error")
setSuccess(name_label)
}
if(description.value.length <= 0) {
valid = false
description.parentElement.parentElement.classList.add("has-error")
description.parentElement.parentElement.classList.remove("has-success")
setError(description_label)
} else {
description.parentElement.parentElement.classList.add("has-success")
description.parentElement.parentElement.classList.remove("has-error")
setSuccess(description_label)
}
return valid;