Bonjour,
Sur un nouvelle page de mon site je doit faire affiché des procédures d'activation de 3 de nos caméras sous forme de pdf.
L'idée est de faire un formulaire de sélection qui, à la toute fin, affiche le fichiers demandé.
page: -http://www.spypoint.com/activation/
5 champ:
choix de la caméra
choix du pays
choix du fournisseur (affichage selon le pays sélectionné)
option (pour la caméra LIVE seulement)
choix de la langue
1 - Si je clique sur "LIVE", tous les champs sont disponible l'un après l'autre...
2 - Si en 2e, je clique sur "internationale", ça doit m'emmené directement au "options" pour LIVE ou directement au choix de langue pour LIVE-3G.
3 - Si je clique sur "WiFi", ça m'amène directement au choix de langue.
Nous avions fait affaire avec un programmeur, qui a fait une bonne partie du travail, mais a rendu un truc bugé...
Voilà qu'on rendre le projet et le dit programmeur ne répond plus.
Après plusieurs corrections, j'ai pu débuggé une bonne parti du formulaire, mais il reste encore un truc qui ne fonctionne pas correctement. Le point 1 fonctionnait déjà à l'origine. J'ai réussi à faire fonctionné le point 3. Reste que le point 2... et c'est là que je bloque.
Il s'agit de faire en sorte que le champ "fournisseurs" ne s'affiche pas lorsque l'on clique sur "internationale".
Si quelqu'un peu m'aider à ce niveau, ça me rendrait un grand service!
Voilà où j'en suis dans mon code js:
Modifié par juliesunset (03 Jun 2013 - 21:53)
Sur un nouvelle page de mon site je doit faire affiché des procédures d'activation de 3 de nos caméras sous forme de pdf.
L'idée est de faire un formulaire de sélection qui, à la toute fin, affiche le fichiers demandé.
page: -http://www.spypoint.com/activation/
5 champ:
choix de la caméra
choix du pays
choix du fournisseur (affichage selon le pays sélectionné)
option (pour la caméra LIVE seulement)
choix de la langue
1 - Si je clique sur "LIVE", tous les champs sont disponible l'un après l'autre...
2 - Si en 2e, je clique sur "internationale", ça doit m'emmené directement au "options" pour LIVE ou directement au choix de langue pour LIVE-3G.
3 - Si je clique sur "WiFi", ça m'amène directement au choix de langue.
Nous avions fait affaire avec un programmeur, qui a fait une bonne partie du travail, mais a rendu un truc bugé...
Voilà qu'on rendre le projet et le dit programmeur ne répond plus.
Après plusieurs corrections, j'ai pu débuggé une bonne parti du formulaire, mais il reste encore un truc qui ne fonctionne pas correctement. Le point 1 fonctionnait déjà à l'origine. J'ai réussi à faire fonctionné le point 3. Reste que le point 2... et c'est là que je bloque.
Il s'agit de faire en sorte que le champ "fournisseurs" ne s'affiche pas lorsque l'on clique sur "internationale".
Si quelqu'un peu m'aider à ce niveau, ça me rendrait un grand service!
Voilà où j'en suis dans mon code js:
// JavaScript Document
$(document).ready(function() {
function resetForm(hidden) {
$(hidden).each(function(i, e) { $(e).hide(); }); // hide every element
$(document).find("select").each(function(i, e) { $(e).prop("selectedIndex", 0); });
$(document).find("input[type=radio]").each(function(i, e) {
$(e).closest("p").attr("class") != "cameras" && $(e).prop("checked", false);
});
}
var ps = new Array();
var pPays = $("p.pays");
var pFourn = $("p.fournisseurs");
var pOptions = $("p.option");
var pLangue = $("p.langue");
var pOk = $("p.ok");
hidden = [ pPays, pFourn, pOptions, pLangue, pOk ];
var showOptions = false;
var showPays = false;
var showFourn = false;
// reset form by default
resetForm(hidden);
$("p.cameras input[name=cameras]").change(function() {
// reset form on change
resetForm(hidden);
showOptions = false;
showPays = false;
var name = $(this).attr("id");
if($(this).is(":checked") && name == "live") {
showOptions = true; // raise show option flag
} else { showOptions = false; }
var name = $(this).attr("id");
if($(this).is(":checked") && name == "wifi") {
showPays = true; // raise show option flag
} else { showPays = false; }
});
$("p.cameras input[name=cameras]").change(function() {
if($(this).val() != "wifi") {
// show next section
if(showPays) {
// show langue
$(pLangue).show();
} else {
// show pays
$(pPays).show();
}
}
});
$("p.pays input[name=pays]").change(function() {
var name = $(this).attr("id");
if($(this).is(":checked") && name == "intl") {
showFourn = true; // raise show option flag
} else { showFourn = false; }
});
$("p.pays input[name=pays]").change(function() {
// reset every fournisseurs
var pays = $(this);
$(pFourn).find("select[name=fournisseurs]").prop("selectedIndex", 0);
// hide invalid fournisseur for next section
$(pFourn).find("select[name=fournisseurs] option").each(function(i, e) {
$(e).show();
if(i > 0 && $(e).attr("data-pays") != pays.val() && pays.val() != "INTL") {
$(e).hide();
}
});
// show next section
$(pFourn).show();
});
$("p.fournisseurs select[name=fournisseurs]").change(function() {
if($(this).val() != "choisir") {
// show next section
if(showOptions) {
// show options
$(pOptions).show();
} else {
// show langue
$(pLangue).show();
}
}
});
// option
$("p.option input[name=option]").change(function() {
$(pLangue).show();
});
// langue
$("p.langue input[name=langue]").change(function() {
$(pOk).show();
});
});
Modifié par juliesunset (03 Jun 2013 - 21:53)