File: //var/www/html/orbidirectory.com/public/custom/admin.js
$(document).ready(function () {
$.validator.addMethod("customEmail", function(value, element) {
return this.optional(element) || /^[a-zA-Z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$/i.test(value);
}, "Please enter a valid email address");
$.validator.addMethod("customPhone", function(value, element) {
return this.optional(element) || /^[0-9]{10,10}$/.test(value);
}, "Please enter a valid number (10 digits)");
$.validator.addMethod("licensePlate", function (value, element) {
return this.optional(element) || /^[A-Z]{2}[0-9]{2}[A-Z]{1,2}[0-9]{4}$/i.test(value);
}, "Please enter a valid license plate (e.g., UP32AB1234)");
$('.jqueryValidation').each(function () {
const isEditForm = $(this).attr('id') === 'edit_vehicle';
console.log('Validating form:', $(this).attr('id'));
$(this).validate({
// Specify your validation rules here
rules: {
// Example rules
name: 'required',
email: {
required: true,
email: true,
customEmail: true,
},
phone_number: {
required: true,
customPhone: true,
},
whatsapp_number: {
required: true,
customPhone: true,
},
vehicle_image: {
required: !isEditForm,
extension: "jpg|jpeg|png|gif|svg"
},
license_plate: {
required: true,
licensePlate: true
}
// Add more rules as needed
},
// Specify the error messages for each rule
messages: {
name: 'Please enter your name',
email: {
required: 'Please enter your email address',
email: 'Please enter a valid email address',
customEmail: 'Please enter a valid email address'
},
phone_number: {
required: 'Please enter your phone number',
customPhone: 'Please enter a valid phone number (10 digits)'
},
whatsapp_number: {
required: 'Please enter your WhatsApp number',
customPhone: 'Please enter a valid WhatsApp number (10 digits)'
},
vehicle_image: {
required: "Please upload an image.",
extension: "Only image files are allowed (jpg, jpeg, png, gif, svg)."
},
license_plate: {
required: "License plate number is required",
licensePlate: "Please enter a valid license plate (e.g., UP32AB1234)"
}
// Add more messages as needed
},
errorPlacement: function (error, element) {
if (element.hasClass('single-select2') && element.next('.select2-container').length) {
error.insertAfter(element.next('.select2-container'));
} else {
error.insertAfter(element);
}
},
// Optional: Handle submission of the form
submitHandler: function (form) {
// You can perform additional actions here before form submission
form.submit(); // Submit the form
}
});
});
});