75 lines
2.2 KiB
TypeScript
75 lines
2.2 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");
|
|
});
|
|
}
|
|
|
|
// Sidebar toggle
|
|
document.querySelector('[data-action="toggle-sidebar"]').addEventListener("click",() => {
|
|
document.body.classList.toggle("sidebar");
|
|
});
|
|
|
|
document.querySelector('form').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;
|
|
} |