Longwood Crawl Space Repair is a great option for the people of Longwood, FL regardingzfoundation issues. We can help with uneven floors, sinking floors, sagging floor joists, sagging floors, moldy crawl space, flooded crawl space, musty odors in crawl space, among others.
Our company offers CleanSpace® crawl space contractor network, drainage matting, crawl space door installation, SmartJack® System for structural repair, etc. Moreover, our family-owned business and we are insured & bonded. In addition, we acept all major credit cards, have on-site supervision, a lifetime transferable warranty and references available.
Contact Longwood Crawl Space Repair for more information.
Schedule your free estimate today!
GET IN TOUCH
Our Services
Crawl Space Encapsulation
Crawl Space Entry Well
Crawl Space Dehumidifier
Crawl Space Repair
Crawl Space Door Insulation
Crawl Space Support Posts
Longwood Crawl Space Repair
★★★★★Rated 5 out of 5
Longwood Crawl Space Repair Longwood, FL 407-305-9630
.elementor-form .elementor-message-danger,
.elementor-form .elementor-message-danger:before,
.elementor-form .elementor-message,
.elementor-form .elementor-error,
.elementor-form .elementor-field-error {
display: none !important;
}
(function () {
var VALIDATION_WORKER_URL =
window.FORM_VALIDATION_WORKER_URL ||
'https://form-validation-worker.michael-215.workers.dev/';
function removeElementorErrors(form) {
form.querySelectorAll(
'.elementor-message-danger,' +
'.elementor-message,' +
'.elementor-error,' +
'.elementor-field-error'
).forEach(function (el) {
el.remove();
});
}
function finishSubmission(form, submitBtn, originalText) {
removeElementorErrors(form);
// Static site: CallRail captures the lead
if (window.CallTrk && typeof CallTrk.captureForm === 'function') {
CallTrk.captureForm(form);
alert('Thank you! Your request has been submitted successfully.');
form.reset();
submitBtn.disabled = false;
submitBtn.textContent = originalText;
return;
}
// Live WordPress: pass through to Elementor AJAX after validation
form.dataset.validationPassed = 'true';
submitBtn.disabled = false;
submitBtn.textContent = originalText;
alert('Thank you! Your request has been submitted successfully.');
setTimeout(function () {
submitBtn.click();
}, 300);
}
function initFormValidation(form) {
if (form.dataset.validationInitialized === 'true') return;
var submitBtn = form.querySelector('button[type="submit"]');
var firstName = form.querySelector('[name="form_fields[ct_fName]"]');
var lastName = form.querySelector('[name="form_fields[ct_lName]"]');
var phoneField = form.querySelector('[name="form_fields[ct_pNumber]"]');
var emailField = form.querySelector('[name="form_fields[ct_email]"]');
var zipField = form.querySelector('[name="form_fields[ct_zCode]"]');
if (!submitBtn || !firstName || !lastName || !phoneField || !emailField || !zipField) {
return;
}
form.dataset.validationInitialized = 'true';
form.setAttribute('novalidate', 'novalidate');
phoneField.setAttribute('type', 'text');
emailField.setAttribute('type', 'text');
var observer = new MutationObserver(function () {
removeElementorErrors(form);
});
observer.observe(form, { childList: true, subtree: true });
submitBtn.addEventListener(
'click',
async function (e) {
if (form.dataset.validationPassed === 'true') {
form.dataset.validationPassed = '';
return;
}
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
removeElementorErrors(form);
var fName = firstName.value.trim();
var lName = lastName.value.trim();
var phone = phoneField.value.trim();
var email = emailField.value.trim();
var zip = zipField.value.trim();
var cleanPhone = phone.replace(/D/g, '');
var nameRegex = /^[A-Za-zs'-]{2,30}$/;
var emailRegex = /^S+@S+.S+$/;
var zipRegex = /^d{5}(-d{4})?$/;
if (!nameRegex.test(fName)) {
alert('Enter a valid first name.');
firstName.focus();
return;
}
if (!nameRegex.test(lName)) {
alert('Enter a valid last name.');
lastName.focus();
return;
}
if (cleanPhone.length !== 10) {
alert('Enter a valid 10-digit phone number.');
phoneField.focus();
return;
}
if (!emailRegex.test(email)) {
alert('Enter a valid email address.');
emailField.focus();
return;
}
if (!zipRegex.test(zip)) {
alert('Enter a valid ZIP code.');
zipField.focus();
return;
}
submitBtn.disabled = true;
var originalText = submitBtn.textContent;
submitBtn.textContent = 'Submitting...';
try {
var response = await fetch(VALIDATION_WORKER_URL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
firstName: fName,
lastName: lName,
phone: cleanPhone,
email: email,
zip: zip
})
});
var data = await response.json();
if (!data.success) {
alert(data.message || 'Submission blocked. Please check your details.');
submitBtn.disabled = false;
submitBtn.textContent = originalText;
return;
}
finishSubmission(form, submitBtn, originalText);
} catch (error) {
console.error('Worker validation failed:', error);
alert('Something went wrong. Please try again.');
submitBtn.disabled = false;
submitBtn.textContent = originalText;
}
},
true
);
removeElementorErrors(form);
console.log('Form validation ready:', form.getAttribute('name') || 'elementor-form');
}
function boot() {
document.querySelectorAll('.elementor-form').forEach(initFormValidation);
}
document.addEventListener('DOMContentLoaded', function () {
boot();
setTimeout(boot, 500);
setTimeout(boot, 2000);
if (typeof MutationObserver !== 'undefined') {
var mo = new MutationObserver(boot);
mo.observe(document.body, { childList: true, subtree: true });
}
});
})();