$(document).ready(function () {
ajaxHeader();
//Preview File When File Is Uploaded
$("#image").on('change',function(e){
const file = e.target.files[0];
console.info("file:",file);
const file_url = URL.createObjectURL(file);
const file_size_in_bytes = file.size;
const file_size_in_kb = (file_size_in_bytes/1024).toFixed(2);
$("#PreviewImage").attr('src',file_url);
$("#file_size").text(file_size_in_kb+" KB");
$("#PreviewImageGroup").removeClass('d-none');
});
//File Size Validation Method
$.validator.addMethod('filesize', function (value, element, param) {
return this.optional(element) || (element.files[0].size <= param*Number(1e+5).toFixed(2))
}, 'File size must not greater than {0} MB');
$("#AjaxForm").submit(function (e) {
e.preventDefault();
}).validate(
{
rules:{
first_name:{
required:true,
maxlength:255,
},
last_name:{
required:true,
maxlength:255,
},
email:{
required:true,
remote:{
url:EmailVailidationUrl,
type:'POST',
}
},
phone_number:{
required:true,
maxlength:11,
minlength:10,
},
image:{
required:true,
filesize:true,
}
},
messages:{
first_name:{
required:"First name is required",
},
last_name:{
required:"Last name is required",
},
email:{
required:"Email is required",
remote:"This email already exists"
},
image:{
required:"Image is required",
filesize:"Image size not greate than 100 kb"
}
},
errorElement: 'span',
errorPlacement: function(err, element) {
err.addClass('invalid-feedback');
element.closest('.form-group').append(err);
},
highlight: function(element, errorClass, validClass) {
$(element).addClass('is-invalid');
},
unhighlight: function(element, errorClass, validClass) {
$(element).removeClass('is-invalid');
},
submitHandler: function() {
const fd= new FormData();
const image = $('#image')[0].files[0];
const FormFieldValues = $("#AjaxForm").serializeArray();
$.each(FormFieldValues, function(){
fd.append(this.name,this.value);
});
fd.append('image',image);
FormStoreRequest(fd);
}
}
);
//Form Submit Request
function FormStoreRequest(fd){
$.ajax({
url: FormSubmitUrl,
enctype: 'multipart/form-data',
processData: false,
contentType: false,
type: 'post',
data: fd,
success:function(res){
alert(res.msg);
}
});
}
});
Comments
Post a Comment
If you any doubt of any topic then you can comment me.