Files
dd-weekend/src/typescript/script.ts
2020-03-01 14:37:34 +01:00

82 lines
2.6 KiB
TypeScript

// Scroll Listener
if (document.body.classList.contains("hero")) {
window.addEventListener("scroll", function () {
if (window.scrollY > 10)
document.body.classList.add("scroll");
else
document.body.classList.remove("scroll");
});
}
window.onload = function() {
// Sidebar toggle
var sidebarToggleElement = document.querySelector('[data-action="toggle-sidebar"]');
if(sidebarToggleElement) {
sidebarToggleElement.addEventListener("click",() => {
document.body.classList.toggle("sidebar");
});
}
// Form silent submit
var formElement = document.querySelector('form');
if(formElement) {
formElement.addEventListener('submit', (e : any) => {
let targetUrl = e.target.action;
// Load form data
let formParameter : Array<string> = GetFormParameter(e.target);
// Build url
let queryString = Object.keys(formParameter).map((k : any) => encodeURIComponent(k) + "=" + encodeURIComponent(formParameter[k])).join("&");
let getUrl = targetUrl + "?" + queryString;
// Perform get request
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", getUrl);
xmlHttp.send();
// Cleanup
e.target.reset();
alert("Anmeldung abgeschickt");
e.preventDefault();
});
}
};
function GetFormParameter( form : any )
{
var params = new Array()
var length = form.elements.length
for( var i = 0; i < length; i++ )
{
let element = form.elements[i]
if(element.tagName == 'TEXTAREA' || element.tagName == 'SELECT')
{
params[element.name] = element.value
}
else if( element.tagName == 'INPUT' )
{
if( element.type == 'text' || element.type == 'email' || element.type == 'hidden' || element.type == 'password')
{
params[element.name] = element.value
}
else if( element.type == 'radio' && element.checked )
{
if( !element.value )
params[element.name] = "on"
else
params[element.name] = element.value
}
else if( element.type == 'checkbox' && element.checked )
{
if( !element.value )
params[element.name] = "on"
else
params[element.name] = element.value
}
}
}
return params;
}