Improve validate_form() JS helper function

This commit is contained in:
Benjamin Renard 2024-12-28 00:19:22 +01:00
parent f868343de5
commit e48d1224f6
Signed by: bn8
GPG key ID: 3E2E1CE1907115BC

View file

@ -127,9 +127,10 @@ function show_form_modal(opts) {
/**
* Validate and serialize form's data
* @param {jQuery} form The form element to validate and serialize
* @param {bool} keep_empty Keep element with empty value in result (optional, default: false)
* @returns object|false The serialized form's data on success or false
*/
function validate_form(form) {
function validate_form(form, keep_empty = false) {
form.find(".is-invalid").removeClass("is-invalid");
if (!form[0].checkValidity()) {
$(form[0].elements).each(function (idx, element) {
@ -140,7 +141,12 @@ function validate_form(form) {
var data = {};
jQuery.each(form.serializeArray(), function (idx, item) {
item.value = item.value.trim();
if (item.value) data[item.name] = item.value;
if (item.value || keep_empty) data[item.name] = item.value;
});
form.find("input[type=checkbox]").each(function (idx, checkbox) {
if (!$(checkbox).val() && $(checkbox).attr("name")) {
data[$(checkbox).attr("name")] = $(checkbox).is(":checked");
}
});
console.log(data);
return data;