I'm using ajax to make a server side form validation in laravel. All my validations are working fine except for one which i can figure out how to do it. Actually i have a field in my form for the ID number, which can take either 7 caracters for passport number, 9 caracters for ID card number or 20 caracters for temporary ID card number. How can i set a validation for size or lenght with 3 differents options?
function validation(e, f) {
var x = document.getElementsByClassName("alert-danger");
var y = "false";
var i;
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: "/membre/modalValidation",
method: "post",
data: (e == 1) ? new FormData(document.getElementById("modal-danger4")) :
new FormData(document.getElementById("modal-danger8")),
processData: false,
dataType: 'json',
async: false,
contentType: false,
beforeSend: function() {
$(document).find('.alert-danger').text('');
},
success: function(data) {
if (data.status == 0) {
$.each(data.error, function(prefix, val) {
$('.m' + f + ' .' + prefix + '_error').text(val[0]);
});
} else {
}
for (i = 0; i < 30; i++) {
if (x[i].innerHTML) {
y = "true";
}
}
}
});
return y;
}
public function modalValidation(Request $request)
{
$newDate = Carbon::now()->subYears(10);
$validator = Validator::make($request->all(), [
'firstname' => ['required'],
'email' => ['required', 'unique:users', 'digits:9'],
'phone' => ['nullable', 'unique:users', 'email:rfc,dns'],
'email1' => ['required', 'unique:client__ents,email', 'digits:9'],
'phone1' => ['nullable', 'unique:client__ents,phone', 'email:rfc,dns'],
'name' => ['required'],
'job' => ['required'],
'CNI_number' => ['required', 'unique:users', 'digits_between:7,20'],
'CNI_date' => ['required', 'date_format:d/m/Y', 'after:'.$newDate],
'CNI_place' => ['required'],
'raison_sociale' => ['required'],
'forme_juridique' => ['required'],
'siteWeb' => ['nullable', 'url'],
'activité' => ['required'],
'num_contribuable' => ['required', 'unique:client__ents,Numero_contribuable', 'between:13,14'],
'NC_date' => ['required', 'date_format:d/m/Y', 'after:'.$newDate],
'siège' => ['required'],
'email2' => ['required', 'unique:responsable_ents,email', 'digits:9'],
'phone2' => ['nullable', 'unique:responsable_ents,phone', 'email:rfc,dns'],
'CNI_number1' => ['required', 'unique:responsable_ents,CNI_number', 'digits_between:7,20'],
'password' => ['required', 'min:8'],
'confirm_password' => ['same:password'],
'checkbox' => ['accepted'],
],
['confirm_password.same' => 'Ne correspond pas',
'accepted'=>'Veuillez cocher la case avant de continuer',
'required'=>'Ce champ est obligatoire',
'phone.unique'=>'Un utilisateur avec ce mail existe déjà',
'email.unique'=>'Un utilisateur avec ce numéro existe déjà',
'phone1.unique'=>'Un utilisateur avec ce mail existe déjà',
'email1.unique'=>'Un utilisateur avec ce numéro existe déjà',
'phone2.unique'=>'Un responsable avec ce mail existe déjà',
'email2.unique'=>'Un responsable avec ce numéro existe déjà',
'CNI_number.unique'=>'Un utilisateur avec ce numéro de CNI existe déjà',
'CNI_number1.unique'=>'Un responsable avec ce numéro de CNI existe déjà',
'num_contribuable.unique'=>'Un utilisateur avec ce numéro de contribuable existe déjà',
'digits'=>'Veuillez saisir un numéro valide à 9 chiffres',
'digits_between'=>'Numéro CNI(Passeport) non-conforme',
'email'=>'Ce mail est invalide. Doit inclure @',
'date_format'=>'Invalide. Veuillez saisir une date',
'CNI_date.after'=>'Votre CNI ou Passeport ou Récépissé est expiré',
'NC_date.after'=>'Votre Numéro de contribuable est expiré',
'url'=>'Invalide. Veuillez saisir un URL',
'password.min'=>'Minimum 8 caractères',
'num_contribuable.between'=>'Numéro de contribuable non-conforme',
]);
if ($validator->fails())
{
return response()->json(['status'=>0, 'error'=>$validator->errors()->toArray()]);
}
}
<div class="modal-body step-2 m2">
<center>
<h4>Pièce d'identité</h4>
</center>
<div class="form-group">
<label>Numéro CNI(ou Passeport)<i style="color:#FF0000">*</i> :</label>
<input type="number" name="CNI_number" class="form-control" placeholder="Entrer le numéro CNI">
<div class='alert-danger CNI_number_error'></div>
</div>
<div class="form-group">
<label>Date de délivrance<i style="color:#FF0000">*</i> :</label>
<input id="demo-one-input" name="CNI_date" class="form-control" placeholder="Entrer la date">
<div class='alert-danger CNI_date_error'></div>
</div>
<div class="form-group">
<label>Lieu de délivrance<i style="color:#FF0000">*</i> :</label>
<input type="text" name="CNI_place" class="form-control" placeholder="Entrer le lieu">
<div class='alert-danger CNI_place_error'></div>
</div>
<div class="form-group">
<label>Votre photo :</label>
<input type='file' accept="image/*" name="photo" class="form-control" placeholder="image portrait">
</div>
<div class="form-group">
<i style="color:#FF0000">*</i> Champs obligatoires
</div>
</div>
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire