Fichier du template de base : recherche_avancee.html version 1.5.4.1 Thélia
Afficher un message d'erreur pour forcer l'utilisateur à sélectionner au moins une rubrique et une sous rubrique.
Ce script fonctionne pas avec une version de jquery > 1.9.1
Voici le code modifié qui fonctionne :
<script src="jquery.19.1.js"></script>
<script type="text/javascript">
$(function()
{
$('.js_caracdisp').click(function()
{
/*jquery lit systèmatiquement l'attribut checked comme checked. On utilise le statut readonly pour savoir si l'utilisateur reclique sur la même radio (on ne veut pas perdre les checlboxes cochées dans ce cas)*/
if(!$(this).prop('readonly'))
{
$('.js_caracdisp').prop('readonly', false);
$(this).prop('readonly', true);
}
else
{
$(this).prop('checked', false);
$(this).prop('readonly', false);
}
});
$('.js_rubrique').click(function()
{
/*jquery lit systèmatiquement l'attribut checked comme checked. On utilise le statut readonly pour savoir si l'utilisateur reclique sur la même radio (on ne veut pas perdre les checlboxes cochées dans ce cas)*/
if(!$(this).prop('readonly'))
{
$('.js_rubrique').prop('readonly', false);
$(this).prop('readonly', true);
$('.js_sousRubrique').prop('disabled', true);
$('.js_sousRubrique').prop('checked', false);
$('.js_Parent_' + $(this).attr('id')).prop('disabled', false);
}
});
$('#submitRechercheAvancee').click(function()
{
var messageErreur = [];
/*A-t-on choisi une rubrique ?*/
var rubriqueCochee = 0;
$('.js_rubrique').each(function()
{
if(($(this).prop('checked')))
{
rubriqueCochee = $(this).attr('id').substr(3, $(this).attr('id').length);
}
});
if(!rubriqueCochee)
{
messageErreur.push("Veuillez sélectionner une rubrique.");
}
/*A-t-on choisi au moins une sous rubrique*/
var sousRubriqueCochee = [];
$('.js_sousRubrique').each(function()
{
if(($(this).prop('checked')))
{
sousRubriqueCochee.push($(this).attr('id').substr(7, $(this).attr('id').length));
}
});
if(sousRubriqueCochee.length==0)
{
messageErreur.push("Veuillez sélectionner au moins une sous-rubrique.");
}
/*A-t-on choisi au moins une caracdisp*/
var caracteristiqueCochee = [];
var caracdispCochee = [];
$('.js_caracdisp').each(function()
{
if(($(this).prop('checked')))
{
caracteristiqueCochee.push($(this).attr('name').substr(15, $(this).attr('name').length));
caracdispCochee.push($(this).attr('id').substr(9, $(this).attr('id').length));
}
});
/*Blocage à activer si tous les produits ont les même caractéristiques*/
/*if(caracteristiqueCochee.length==0 || caracdispCochee.length==0) messageErreur.push("Veuillez sélectionner au moins une caracteristique.");*/
if(messageErreur.length > 0)
{
$('#affichage-erreur').html(messageErreur.join("<br />"));
$('#bloc-erreur').show();
return false;
}
var requete = '&rubrique=' + rubriqueCochee + '&sousrubrique=' + sousRubriqueCochee.join(',') + '&caracteristique=' + caracteristiqueCochee.join('-') + '&caracdisp=' + caracdispCochee.join('-');
window.location = '[url]http://www.lemarcheduvelo.com/?fond=recherche_avancee[/url]' + requete;
return false;
});
$('#reinitialise').click(function()
{
$('.js_rubrique').prop('checked', false);
$('.js_rubrique').prop('readonly', false);
$('.js_sousRubrique').prop('checked', false);
$('.js_sousRubrique').prop('disabled', true);
$('.js_sousRubrique').prop('readonly', false);
return false;
});
});
</script>
Last edited by jjm (15-05-2013 17:18:40)