Bauspar- und Finanzierungsfachmann (m/w/d)
Bauspar- und Finanzierungsfachmann (m/w/d)
Vorname*:
Nachname*:
E-Mail-Adresse*:
Sie können 20 MB an Anlagen hochladen und verschicken.
Schulabschluss vorhanden
Gesellenbrief vorhanden
Keinen Lebenslauf zur Hand?
Ich bin mit der Datenschutzerklärung einverstanden*
Jetzt Bewerben
Schnellbewerbung: Hier benötigen wir keinen Lebenslauf, sondern lediglich deine Kontaktdaten. Das Unternehmen wird sich dann direkt mit dir in Verbindung setzen.
Vorname*:
Nachname*:
Telefonnummer*:
Bewerbung als Bauspar- und Finanzierungsfachmann (m/w/d)*:
(bitte PLZ mit angeben)
Sehr geehrte Damen und Herren,
ich interessiere mich für die bei jobblitz.de ausgeschriebene Stelle als Bauspar- und Finanzierungsfachmann (m/w/d) mit der Referenznummer 4722178-jb bei Ihrem Unternehmen BKM Bausparkasse Mainz AG.
Ich freue mich auf Ihren Rückruf.
Postleitzahl: [bitte PLZ eingeben]
Bei Fragen stehe ich gerne zur Verfügung.
Mit freundlichen Grüßen
[Vorname Nachname]
Ich bin mit der Datenschutzerklärung einverstanden*
Rückruf anfordern
Vorname*:
Nachname*:
E-Mail-Adresse*:
Sie können 20 MB an Anlagen hochladen und verschicken.
Ich bin mit der Datenschutzerklärung einverstanden*
Jetzt Bewerben
Schnellbewerbung: Hier benötigen wir keinen Lebenslauf, sondern lediglich deine Kontaktdaten. Das Unternehmen wird sich dann direkt mit dir in Verbindung setzen.
Vorname*:
Nachname*:
E-Mail-Adresse*:
Sie können 20 MB an Anlagen hochladen und verschicken.
Keinen Lebenslauf zur Hand?
Bewerbung als Bauspar- und Finanzierungsfachmann (m/w/d)*:
(bitte PLZ mit angeben)
Sehr geehrte Damen und Herren,
ich interessiere mich für die bei jobblitz.de ausgeschriebene Stelle als Bauspar- und Finanzierungsfachmann (m/w/d) mit der Referenznummer 4722178-jb bei Ihrem Unternehmen BKM Bausparkasse Mainz AG.
Postleitzahl: [bitte PLZ eingeben]
Bei Fragen stehe ich gerne zur Verfügung.
Mit freundlichen Grüßen
[Vorname Nachname]
Ich bin mit der Datenschutzerklärung einverstanden*
Jetzt bewerben
Vielen Dank, !
Wenn Du weitere, ähnliche offene Stellen per E-Mail erhalten willst, bestätige einfach den Button.
Deine Bewerbung ist bereits unterwegs, schau dir in der Zwischenzeit gerne weitere Angebote an.
Ich bin mit der Datenschutzerklärung einverstanden*
Bestätigen
Ihre Anfrage nach neuen Stellenanzeigen konnte nicht versendet werden. Bitte versuchen Sie es später
nochmal.
Diese Stelle ist im Moment noch unbesetzt.
Für eine spätere Bewerbung nach Hause schicken.
Hinweis zum Datenschutz.
-->
Erinner mich!
Vielen Dank!
Deine Email ist bereits unterwegs, schau dir in der Zwischenzeit gerne weitere Angebote an.
0) {
error.textContent = '';
error.classList.remove('error--visible');
}
changeFileUploadState(cvUpload);
checkFileSize(fileList, cvUpload);
});
if (multipleUpload) {
multipleUpload.addEventListener('change', function () {
handleMultipleUpload(multipleUpload, fileList);
checkFileSize(fileList, cvUpload);
});
}
}
/*
applicationForm.addEventListener('submit', function(e) {
sendApplication(e, applicationForm);
});
newsletterForm.addEventListener('submit', function(e) {
sendNewsletterRequest(e, newsletterForm, newsletterInputFields, successButton);
}); */
}
/**
* Closes application form and clears all input fields
*
* @param {HTMLElement} form
*/
function closeForm(form) {
applicationForm.reset();
newsletterForm.reset();
fileList = [];
if (fileListContainer) {
fileListContainer.innerHTML = '';
}
form.classList.remove('application-form--visible');
applicationFormContainer.classList.remove('application-form--successful');
applicationFormContainer.classList.remove('application-form--not-successful');
newsletterForm.classList.remove('newsletter-form--not-successful');
if (cvUpload) {
cvUpload.classList.remove('file-selected');
}
if (multipleUpload) {
multipleUpload.classList.remove('has-file');
}
let customFileUpload = document.querySelector('.custom-file-upload');
if (customFileUpload) {
customFileUpload.textContent = '';
}
errorFields.forEach(function(field) {
field.textContent = '';
field.classList.remove('error--visible');
});
allFields.forEach((input) => {
input.disabled = false;
});
}
/**
* Add specific classes to file input, if file is uploaded, to change input appearance.
* Also adds the remove button.
*
* @param {HTMLElement} input
*/
function changeFileUploadState(input) {
if (input.files.length > 0) {
const btn = createFileRemoveButton(input);
document.querySelector('.custom-file-upload').textContent = input.files.item(0).name;
input.classList.add('file-selected');
input.parentNode.appendChild(btn);
}
}
/**
* Store uploaded files in fileList array and handle the appearance of the file input
*
* @param {HTMLElement} input
* @param {Array} list
*/
function handleMultipleUpload(input, list) {
if (input.files.length > 0) {
const fileData = {id: input.files[0].lastModified, file: input.files[0]};
list.push(fileData);
createListEntry(input, fileData.file);
}
if (list.length > 0) {
input.classList.add('has-file');
} else {
input.classList.remove('has-file');
}
}
/**
* Creates an element that contains the uploaded file name and a button to remove the file from the file list
*
* @param {HTMLElement} input
* @param {Object} file
*/
function createListEntry(input, file) {
const entry = document.createElement('div');
const btn = createFileRemoveButton();
entry.classList.add('application-form__file-list-item');
entry.setAttribute('data-id', file.lastModified);
entry.innerHTML = '' + file.name + '';
entry.appendChild(btn);
fileListContainer.appendChild(entry);
}
/**
* Creates an element that removes the uploaded file on click
*
* @param {HTMLElement} input
*/
function createFileRemoveButton(input) {
let remove = document.createElement('div');
remove.classList.add('application-form__file-upload-remove');
remove.addEventListener('click', function(e) {
e.preventDefault();
removeFile(input, this);
checkFileSize(fileList, cvUpload);
});
return remove;
}
/**
* Removes the selected file from the file input
*
* @param {HTMLElement} input
* @param {HTMLElement} button
*/
function removeFile(input, button) {
if (input) {
input.value = '';
document.querySelector('.custom-file-upload').textContent = '';
input.classList.remove('file-selected');
} else {
const item = button.parentNode;
fileList.splice(fileList.findIndex(element => element.id === item.dataset.id));
item.remove();
if (fileList.length === 0) {
document.querySelector('#other').classList.remove('has-file');
}
}
}
/**
* Check if the uploaded files are smaller than 20MB
*
* @param {Object} fileList
* @param {HTMLElement} cv
* @returns {boolean}
*/
function checkFileSize(fileList, cv) {
if (!cvUpload) {
return true;
}
let totalFileSize = 0;
let error = document.querySelector('.error__file-size');
for (let item of fileList) {
totalFileSize += item.file.size;
}
if (cvUpload.files.length > 0) {
totalFileSize += cv.files.item(0).size;
}
if (Math.floor(totalFileSize / 1000000) >= 20) {
error.textContent = 'Die angehängten Anlagen sind zu groß.';
error.classList.add('error--visible');
return false;
}
error.textContent = '';
error.classList.remove('error--visible');
return true;
}
/**
* Checks the validity of the input fields and displays an error message if not valid
*
* @param {Event} event
* @param {NodeList} fields
*/
function checkValidity(event, fields) {
let isValid = true;
fields.forEach(function(field) {
event.preventDefault();
const error = field.parentElement.querySelector('.error');
if (!field.validity.valid && error) {
if (field.validity.valueMissing && field.getAttribute('type') === 'checkbox') {
error.textContent = 'Bitte Datenschutzerklärung bestätigen';
} else if (field.validity.valueMissing && field.getAttribute('type') === 'file') {
error.textContent = 'Bitte CV/Lebenslauf hochladen';
} else if (field.validity.valueMissing) {
error.textContent = 'Bitte machen Sie eine Angabe.';
} else if (field.validity.typeMismatch) {
error.textContent = 'Bitte geben Sie eine E-Mail-Adresse an.';
}
error.classList.add('error--visible');
isValid = false;
} else if (error) {
error.textContent = '';
error.classList.remove('error--visible');
}
});
return isValid;
}
/**
* Sends form and appends file data
*
* @param {Element} form
* @param {Event} event
*/
function sendApplication(event, form) {
event.preventDefault();
let selectedApplicationType = applicationFormLayer.dataset.selectedapplicationtype,
activeFields = form.querySelectorAll('div[data-applicationtype="' + selectedApplicationType + '"] input'),
submit = form.querySelector('div[data-applicationtype="' + selectedApplicationType + '"] .application-form__submit');
if (checkFileSize(fileList, cvUpload) && checkValidity(event, activeFields)) {
// Needs to be done, otherwise FormData(form) will also use the display none fields.
allFields.forEach((input) => {
input.disabled = true;
});
activeFields.forEach((input) => {
input.disabled = false;
});
const data = new FormData(form);
const jobTitle = document.querySelector('.application-form__job-title').textContent.trim();
const refNumber = applicationFormContainer.dataset.ref;
const campaign = Cookies.get('campaign') ? Cookies.get('campaign').split(',')[0] : 'jobblitz';
const autowert = refNumber.slice(0, -3);
const subject = 'Bewerbung über jobblitz.de: ' + jobTitle + ', RefNr. ' + refNumber;
firstNameSender = data.get('first-name');
lastNameSender = data.get('last-name');
emailSender = data.get('email');
submit.disabled = true;
data.append('subject', subject);
data.append('autowert', autowert);
data.append('campaign', campaign);
for (const item of fileList) {
data.append('otherUploads[]', item.file);
}
let request = new XMLHttpRequest();
request.open('POST', '/sendApplication');
request.onload = function() {
if (request.status === 200) {
if (request.response !== '') {
let response = JSON.parse(request.response);
if (response.status === 1) {
document.querySelector(
'.application-form__success-title .user-name'
).textContent = firstNameSender;
applicationFormContainer.classList.add('application-form--successful');
if (response.member === 1 || !emailSender) {
applicationFormContainer.classList.add('application-form--newsletter-subscribed');
} else {
applicationFormContainer.classList.remove('application-form--newsletter-subscribed');
}
// send "bewerbung versendet" signal
sdeTracking.generatePixel(2);
} else {
let formError = document.querySelector('.application-form__error');
formError.innerHTML = '';
applicationFormContainer.classList.add('application-form--not-successful');
response.messages.forEach(function(message) {
let errorMessage = document.createElement('p');
errorMessage.textContent = message;
formError.append(errorMessage);
});
}
}
submit.disabled = false;
} else {
let formError = document.querySelector('.application-form__error');
formError.innerHTML = 'Ihre Bewerbung konnte nicht versendet werden. Bitte versuchen Sie es später nochmal.';
applicationFormContainer.classList.add('application-form--not-successful');
submit.disabled = false;
}
};
request.send(data);
}
}
function sendNewsletterRequest(event, form, fields, submit) {
event.preventDefault();
if (checkValidity(event, fields)) {
submit.disabled = true;
const category = applicationFormContainer.dataset.category;
const data = new FormData(form);
data.append('first-name', firstNameSender);
data.append('last-name', lastNameSender);
data.append('email', emailSender);
if (category) {
data.append('category', category);
}
let request = new XMLHttpRequest();
request.open('POST', '/sendNewsletterRequest');
request.onload = function() {
if (request.status === 200) {
let response = JSON.parse(request.response);
if (response.status === 400) {
let error = response.detail;
if (error) {
document.querySelector('.application-form__success').innerHTML = response.detail;
}
} else {
closeForm(applicationFormLayer);
}
} else {
newsletterForm.classList.add('newsletter-form--not-successful');
}
firstNameSender = '';
lastNameSender = '';
emailSender = '';
submit.disabled = false;
};
request.send(data);
}
}
});
]]>