FIX_JS_VALIDATION_ISSUE

This commit is contained in:
VENKATESHWARAN 2026-04-29 09:16:32 +05:30
parent 5cb8184c8c
commit d53164ce04
4 changed files with 92 additions and 33 deletions

View File

@ -172,7 +172,7 @@ input:checked + .slider-branch-contact:before {
<label for="branch_name">Branch Name<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="branch_name" placeholder="Enter Branch Name"
name="branch_name" required data-parsley-minlength="3"
data-parsley-pattern="^[a-zA-Z0-9\\s_-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Branch Name can contain letters, numbers, spaces, underscore (_) and hyphen (-).">
</div>
<div class="form-group col-md-6">
@ -180,7 +180,9 @@ input:checked + .slider-branch-contact:before {
<input type="text" class="form-control" id="branch_code" placeholder="Enter Branch Code"
name="branch_code" onchange="setDefaultUnitValue(this)" required
data-parsley-pattern="^[a-zA-Z0-9_-]+$"
data-parsley-pattern-message="Branch Code can contain letters, numbers, underscore (_) and hyphen (-).">
data-parsley-pattern-message="Branch Code can contain letters, numbers, underscore (_) and hyphen (-)."
oninput="this.value = this.value.replace(/[^A-Za-z0-9_-]/g, '')"
onblur="this.value = this.value.trim();">
</div>
</div>
@ -209,14 +211,14 @@ input:checked + .slider-branch-contact:before {
<label for="district">District<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="district" placeholder="Enter District"
name="district" required
data-parsley-pattern="^[a-zA-Z0-9\\s-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s-]+$"
data-parsley-pattern-message="District can contain letters, numbers, spaces, and hyphens.">
</div>
<div class="form-group col-md-3">
<label for="city">City<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="branch_city" placeholder="Enter City"
name="city" required
data-parsley-pattern="^[a-zA-Z0-9\\s-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s-]+$"
data-parsley-pattern-message="City can contain letters, numbers, spaces, and hyphens.">
</div>
<div class="form-group col-md-3">
@ -771,7 +773,7 @@ function appendContactHtml(contact = false, reset = false) {
<div class="form-group col-md-6">
<label for="${uniqueId}_first_name">Name<span class="text-danger">*</span></label>
<input value="${contact !== undefined && contact !== false ? contact.name : ''}" type="text" class="form-control" placeholder="Enter Contact Name" name="name[]" id="${uniqueId}_name" required
data-parsley-pattern="^[A-Za-z\\s]+$"
data-parsley-pattern="^[A-Za-z\s]+$"
data-parsley-pattern-message="Contact name may contain only letters and spaces.">
</div>
<div class="form-group col-md-6">
@ -1364,7 +1366,8 @@ function setDefaultUnitValue()
{
var client_id = $('#client_id_branch').val();
var branch_code = $('#branch_code').val();
var branch_code = ($('#branch_code').val() || '').trim();
$('#branch_code').val(branch_code);
var units = $('#selected').val();
console.log('client_id', client_id)

View File

@ -108,15 +108,17 @@
<input type="text" class="form-control" id="branch_name"
placeholder="Enter Branch Name" name="branch_name" required
data-parsley-minlength="3"
data-parsley-pattern="^[a-zA-Z0-9\\s_-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Branch Name can contain letters, numbers, spaces, underscore (_) and hyphen (-).">
</div>
<div class="form-group col-md-6">
<label for="branch_code">Branch Code <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="branch_code"
placeholder="Enter Branch Code" name="branch_code" required
data-parsley-pattern="^[a-zA-Z0-9_-]+$"
data-parsley-pattern-message="Branch Code can contain letters, numbers, underscore (_) and hyphen (-).">
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Branch Code can contain letters, numbers, spaces, underscore (_) and hyphen (-)."
oninput="this.value = this.value.replace(/[^A-Za-z0-9_\- ]/g, '')"
onblur="this.value = this.value.trim();">
</div>
</div>
@ -147,7 +149,7 @@
<label for="district">District <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="district"
placeholder="Enter District" name="district" required
data-parsley-pattern="^[a-zA-Z0-9\\s-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s-]+$"
data-parsley-pattern-message="District can contain letters, numbers, spaces, and hyphens.">
</div>
</div>
@ -158,7 +160,7 @@
<label for="branch_city">City <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="branch_city"
placeholder="Enter City" name="city" required
data-parsley-pattern="^[a-zA-Z0-9\\s-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s-]+$"
data-parsley-pattern-message="City can contain letters, numbers, spaces, and hyphens.">
</div>
<div class="form-group col-md-6">
@ -197,8 +199,8 @@
<div class="form-group col-md-12">
<label for="name">Name <span class="text-danger">*</span></label>
<input value="" type="text" class="form-control" placeholder="Enter Contact Name" name="name[]" id="name" required
data-parsley-pattern="^[A-Za-z\\s]+$"
data-parsley-pattern-message="Contact name may contain only letters and spaces.">
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Contact name can contain letters, numbers, spaces, underscore (_) and hyphen (-).">
</div>
</div>
<div class="form-row">
@ -213,7 +215,7 @@
<div class="form-group col-md-12">
<label for="email">Email <span class="text-danger">*</span></label>
<input value="" type="email" data-parsley-trigger="change" class="form-control" placeholder="Enter Contact Email" name="email[]" id="email" required
data-parsley-pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
data-parsley-pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
data-parsley-pattern-message="Please enter a valid email format (e.g., name@domain.com).">
</div>
</div>
@ -456,7 +458,7 @@
if (!/^[a-zA-Z0-9\s_-]+$/.test(v)) return 'Branch Name can contain letters, numbers, spaces, underscore (_) and hyphen (-).';
return '';
case 'branch_code':
if (!/^[a-zA-Z0-9_-]+$/.test(v)) return 'Branch Code can contain letters, numbers, underscore (_) and hyphen (-).';
if (!/^[a-zA-Z0-9\s_-]+$/.test(v)) return 'Branch Code can contain letters, numbers, spaces, underscore (_) and hyphen (-).';
return '';
case 'address1':
return '';
@ -968,8 +970,8 @@
<div class="form-group col-md-12">
<label>Name<span class="text-danger">*</span></label>
<input value="${contact ? contact.name : ''}" type="text" class="form-control" placeholder="Enter Contact Name" name="name[]" required
data-parsley-pattern="^[A-Za-z\\s]+$"
data-parsley-pattern-message="Contact name may contain only letters and spaces.">
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Contact name can contain letters, numbers, spaces, underscore (_) and hyphen (-).">
</div>
</div>
<div class="form-row">
@ -984,7 +986,7 @@
<div class="form-group col-md-12">
<label>Email<span class="text-danger">*</span></label>
<input value="${contact ? contact.email : ''}" type="email" data-parsley-trigger="change" class="form-control" placeholder="Enter Contact Email" name="email[]" required
data-parsley-pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
data-parsley-pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
data-parsley-pattern-message="Please enter a valid email format (e.g., name@domain.com).">
</div>
</div>

View File

@ -277,6 +277,7 @@
<script>
(function (window, document) {
var MAX_GLOBAL_UPLOAD_BYTES = 25 * 1024 * 1024; // 25 MB
var textEncoder = typeof TextEncoder !== 'undefined' ? new TextEncoder() : null;
function formatBytesToMb(bytes) {
return (bytes / (1024 * 1024)).toFixed(2);
@ -336,6 +337,51 @@
return true;
}
function formatPayloadSize(bytes) {
return {
bytes: bytes,
kb: (bytes / 1024).toFixed(2),
mb: (bytes / (1024 * 1024)).toFixed(2)
};
}
function getTextBytes(value) {
var textValue = String(value == null ? '' : value);
if (textEncoder) {
return textEncoder.encode(textValue).length;
}
return unescape(encodeURIComponent(textValue)).length;
}
function calculateFormPayloadBytes(form) {
if (!form || typeof FormData === 'undefined') {
return 0;
}
var total = 0;
var formData = new FormData(form);
formData.forEach(function (value) {
if (value instanceof File) {
total += value.size || 0;
} else {
total += getTextBytes(value);
}
});
return total;
}
function getFormIdentity(form) {
if (!form) {
return 'unknown-form';
}
if (form.id) {
return '#' + form.id;
}
if (form.name) {
return 'name="' + form.name + '"';
}
return form.getAttribute('action') || 'anonymous-form';
}
window.validateGlobalUploadPayload = validateGlobalUploadPayload;
document.addEventListener('change', function (event) {
@ -355,10 +401,16 @@
if (!form || !form.matches || !form.matches('form')) {
return;
}
if (!form.querySelector('input[type="file"]')) {
return;
}
if (!validateGlobalUploadPayload(form)) {
var payloadBytes = calculateFormPayloadBytes(form);
var payloadMeta = formatPayloadSize(payloadBytes);
console.log(
'[Form Payload] ' + getFormIdentity(form) +
' => ' + payloadMeta.bytes + ' bytes (' +
payloadMeta.kb + ' KB, ' + payloadMeta.mb + ' MB)'
);
if (form.querySelector('input[type="file"]') && !validateGlobalUploadPayload(form)) {
event.preventDefault();
event.stopPropagation();
}

View File

@ -242,14 +242,16 @@
<label for="branch_name">Branch Name <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="branch_name" placeholder="Enter Branch Name" name="branch_name" required maxlength="255" data-parsley-maxlength="255"
data-parsley-minlength="3"
data-parsley-pattern="^[a-zA-Z0-9\\s_-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Branch Name can contain letters, numbers, spaces, underscore (_) and hyphen (-).">
</div>
<div class="form-group col-md-6">
<label for="branch_code">Branch Code <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="branch_code" placeholder="Enter Branch Code" name="branch_code" required maxlength="100" data-parsley-maxlength="100"
data-parsley-pattern="^[a-zA-Z0-9_-]+$"
data-parsley-pattern-message="Branch Code can contain letters, numbers, underscore (_) and hyphen (-).">
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Branch Code can contain letters, numbers, spaces, underscore (_) and hyphen (-)."
oninput="this.value = this.value.replace(/[^A-Za-z0-9_\- ]/g, '')"
onblur="this.value = this.value.trim();">
</div>
</div>
@ -280,7 +282,7 @@
<div class="form-group col-md-6">
<label for="district">District <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="district" placeholder="Enter District" name="district" required maxlength="100" data-parsley-maxlength="100"
data-parsley-pattern="^[a-zA-Z0-9\\s-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s-]+$"
data-parsley-pattern-message="District can contain letters, numbers, spaces, and hyphens.">
</div>
</div>
@ -290,7 +292,7 @@
<div class="form-group col-md-6">
<label for="branch_city">City <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="branch_city" placeholder="Enter City" name="city" required maxlength="100" data-parsley-maxlength="100"
data-parsley-pattern="^[a-zA-Z0-9\\s-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s-]+$"
data-parsley-pattern-message="City can contain letters, numbers, spaces, and hyphens.">
</div>
<div class="form-group col-md-6">
@ -325,8 +327,8 @@
<div class="form-group col-md-12">
<label for="name">Name <span class="text-danger">*</span></label>
<input value="" type="text" class="form-control" placeholder="Enter Contact Name" name="name[]" id="name" required maxlength="100" data-parsley-maxlength="100"
data-parsley-pattern="^[A-Za-z\\s]+$"
data-parsley-pattern-message="Contact name may contain only letters and spaces.">
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Contact name can contain letters, numbers, spaces, underscore (_) and hyphen (-).">
</div>
</div>
<div class="form-row">
@ -341,7 +343,7 @@
<div class="form-group col-md-12">
<label for="email">Email <span class="text-danger">*</span></label>
<input value="" type="email" data-parsley-trigger="change" class="form-control" placeholder="Enter Contact Email" name="email[]" id="email" required
data-parsley-pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
data-parsley-pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
data-parsley-pattern-message="Please enter a valid email format (e.g., name@domain.com).">
</div>
</div>
@ -970,8 +972,8 @@ function renumberContacts() {
<div class="form-group col-md-12">
<label>Name<span class="text-danger">*</span></label>
<input value="${contact ? contact.name : ''}" type="text" class="form-control" placeholder="Enter Contact Name" name="name[]" required maxlength="100" data-parsley-maxlength="100"
data-parsley-pattern="^[A-Za-z\\s]+$"
data-parsley-pattern-message="Contact name may contain only letters and spaces.">
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Contact name can contain letters, numbers, spaces, underscore (_) and hyphen (-).">
</div>
</div>
<div class="form-row">
@ -986,7 +988,7 @@ function renumberContacts() {
<div class="form-group col-md-12">
<label>Email<span class="text-danger">*</span></label>
<input value="${contact ? contact.email : ''}" type="email" data-parsley-trigger="change" class="form-control" placeholder="Enter Contact Email" name="email[]" required
data-parsley-pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
data-parsley-pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
data-parsley-pattern-message="Please enter a valid email format (e.g., name@domain.com).">
</div>
</div>