vérification sélections cases et radios
FossilOrigin-Name: ba0d1089be4acbc5c7cfba5ab180a19e6a66bb1b466e8ed238337c239d326a49
This commit is contained in:
parent
a3e855870c
commit
38a3556dbd
3 changed files with 75 additions and 28 deletions
|
|
@ -3,7 +3,8 @@
|
|||
* (dé)sélectionner toutes les cases à cocher de toutes les activités
|
||||
* @param id de la case globale
|
||||
*/
|
||||
function cocherDecocherTout(idCaseGlobale) {
|
||||
function cocherDecocherTout(idCaseGlobale)
|
||||
{
|
||||
// chercher le formulaire englobant
|
||||
var formulaire = idCaseGlobale.closest("form");
|
||||
// itérer sur la liste des éléments détails : 1 par couple <activité, tarif>
|
||||
|
|
@ -39,7 +40,8 @@ function cocherDecocherTout(idCaseGlobale) {
|
|||
* @param id de la case qui a été cochée
|
||||
* @param id de l'élément où afficher le total
|
||||
*/
|
||||
function cocherDecocherPersonne(idCase, idTotal) {
|
||||
function cocherDecocherPersonne(idCase, idTotal)
|
||||
{
|
||||
// chercher le fieldset englobant
|
||||
var fieldset = idCase.closest("fieldset");
|
||||
var listeCases = fieldset.querySelectorAll("input[type=checkbox]");
|
||||
|
|
@ -67,7 +69,8 @@ function cocherDecocherPersonne(idCase, idTotal) {
|
|||
* @param id de la case qui a été cochée
|
||||
* @param id de l'élément où afficher le total
|
||||
*/
|
||||
function cocherDecocherVersement(idCase, idTotal) {
|
||||
function cocherDecocherVersement(idCase, idTotal)
|
||||
{
|
||||
var fieldset = idCase.closest("fieldset");
|
||||
var listeCases = fieldset.querySelectorAll("input[type=checkbox]");
|
||||
var listeMontants = fieldset.querySelectorAll("span.montant");
|
||||
|
|
@ -80,7 +83,8 @@ function cocherDecocherVersement(idCase, idTotal) {
|
|||
* @param listes des montants associés
|
||||
* @param id de l'élément où afficher le total
|
||||
*/
|
||||
function calculerTotal(listeCases, listeMontants, idTotal) {
|
||||
function calculerTotal(listeCases, listeMontants, idTotal)
|
||||
{
|
||||
var total = 0;
|
||||
for (var i = 1; i < listeCases.length; ++i)
|
||||
{
|
||||
|
|
@ -118,7 +122,11 @@ function verifierChoix(formulaire)
|
|||
return ok;
|
||||
}
|
||||
|
||||
function afficherMasquer(formulaire, nomClasse1, nomClasse2) {
|
||||
/**
|
||||
* fonction appelée pour afficher et masquer des portions de formulaire
|
||||
*/
|
||||
function afficherMasquer(formulaire, nomClasse1, nomClasse2)
|
||||
{
|
||||
for (var elem of formulaire.querySelectorAll(nomClasse1)) {
|
||||
elem.classList.remove('hidden');
|
||||
}
|
||||
|
|
@ -127,13 +135,53 @@ function afficherMasquer(formulaire, nomClasse1, nomClasse2) {
|
|||
}
|
||||
}
|
||||
|
||||
// aiguiller la suite vers la page passée en paramètre
|
||||
function aiguiller(formulaire, pageSuivante) {
|
||||
formulaire.action = pageSuivante + ".php";
|
||||
// vérifier
|
||||
// - qu'au moins une activité/tarif est sélectionnée
|
||||
// - qu'un radio de chaque activité/tarif sélectionné a été sélectionné :)
|
||||
function verifierCases(idElem)
|
||||
{
|
||||
var div = document.getElementById(idElem);
|
||||
var nbChoix = 0;
|
||||
// parcourir les cases à cocher
|
||||
for (var idCase of div.querySelectorAll("input[type=checkbox]"))
|
||||
{
|
||||
if (idCase.checked) {
|
||||
++nbChoix;
|
||||
// vérifier qu'un radio de la même ligne est sélectionné
|
||||
var ligneCorrecte = false;
|
||||
// trouver la ligne englobante
|
||||
var ligne = idCase.closest("tr");
|
||||
for (var idRadio of ligne.querySelectorAll('input[type=radio]'))
|
||||
{
|
||||
if (idRadio.checked) { ligneCorrecte = true; break; }
|
||||
}
|
||||
if (! ligneCorrecte) {
|
||||
alert("Erreur : il faut sélectionner un taux de réduction dans chaque ligne cochée");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (nbChoix == 0) {
|
||||
alert("Erreur : il faut sélectionner au moins une activité/tarif");
|
||||
}
|
||||
return nbChoix != 0;
|
||||
}
|
||||
|
||||
// vérifier qu'un radio a été sélectionné dans la div paramètre
|
||||
function verifierRadio(idElem)
|
||||
{
|
||||
var div = document.getElementById(idElem);
|
||||
for (var idRadio of div.querySelectorAll('input[type=radio]'))
|
||||
{
|
||||
if (idRadio.checked) { return true; }
|
||||
}
|
||||
alert("Erreur : il faut sélectionner un taux de réduction");
|
||||
return false;
|
||||
}
|
||||
|
||||
// inutilisé
|
||||
function activerDesactiverRadio(evt) {
|
||||
function activerDesactiverRadio(evt)
|
||||
{
|
||||
var idCase = evt.target;
|
||||
// checher la ligne englobante ( <tr>)
|
||||
var ligne = idCase.closest("tr");
|
||||
|
|
@ -148,21 +196,12 @@ function activerDesactiverRadio(evt) {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* indiquer le nom du script php à activer
|
||||
* @param formulaire
|
||||
* @param script php
|
||||
*/
|
||||
function activer(formulaire, script) {
|
||||
formulaire.action = script;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Associer un écouteur à la première case à cocher de chaque table
|
||||
* @remarks : n'est plus utile
|
||||
*/
|
||||
function activerListener() {
|
||||
function activerListener()
|
||||
{
|
||||
// parcourir les tables
|
||||
const lesTables = document.querySelectorAll("table.list");
|
||||
for (let i = 0; i < lesTables.length; ++i) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue