Current File : /home/illuminatiprivate.express/public_html/plugins/renatio/formbuilder/assets/js/form.js |
/*
* Update states options when country is selected
*/
function updateStateDropdown(data) {
var states = JSON.parse(data.result);
var stateSelect = $('#country-state select');
if (stateSelect.length) {
var emptyOption = stateSelect.find('option:first');
stateSelect.html('');
for (var stateId in states) {
stateSelect.append('<option value="' + stateId + '">' + states[stateId] + '</option>');
}
stateSelect.prepend(emptyOption[0].outerHTML);
}
}
/*
* Implement nice invalid form fields
*/
$(window).on('ajaxInvalidField', function (event, fieldElement, fieldName, errorMsg, isFirst) {
var $field = $(fieldElement).closest('.form-group'),
$help = $('<p />').addClass('help-block');
if (!$field.length) {
return;
}
event.preventDefault();
if (errorMsg) {
$help.text(errorMsg.join(', '));
}
$help.addClass('form-field-error-label');
$field.addClass('has-error');
// Prevent the next error alert only once
$(window).one('ajaxErrorMessage', function (event) {
event.preventDefault();
});
if ($('.form-field-error-label', $field).length > 0)
return;
$field.append($help);
// Scroll to the form group
if (isFirst) {
$('html, body').animate({scrollTop: $field.offset().top - 100}, 500, function () {
fieldElement.focus();
});
}
});
$(document).on('ajaxPromise', '[data-request]', function () {
var $form = $(this).closest('form'),
$help = $('.form-field-error-label', $form);
if (!$form.length || !$help.length)
return;
$help.remove();
$('.form-group.has-error', $form).removeClass('has-error');
});