THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


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)


web creation : développement & création web
Thélia plugin

Offline


Salut,

ça serait bien de savoir l'erreur que ça retourne...


Aide les autres, ils t'aideront en retour.

Offline


(je précise que le template de base fonctionne puisque la version jQuery utilisée et 1.6.2, c'est au cas ou on veux utiliser une version sup à 1.9 de jQuery).

La validation du formulaire ne génère pas d'erreur mais la validation ne marche pas.
La principale modification du script pour le faire fonctionner vient de ATTR qui est en partie devenue PROP.

Last edited by jjm (15-05-2013 17:19:20)


web creation : développement & création web
Thélia plugin

Offline


merci pour le partage


adlena