Form submit logic
This commit is contained in:
@@ -7,3 +7,64 @@ if (document.body.classList.contains("hero")) {
|
||||
document.body.classList.remove("scroll");
|
||||
});
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user