orionis1
Messages postés40Date d'inscriptionmardi 20 novembre 2007StatutMembreDernière intervention 7 juillet 2010
-
20 nov. 2007 à 08:43
fouratinourhen
Messages postés1Date d'inscriptiondimanche 17 avril 2011StatutMembreDernière intervention24 mai 2011
-
24 mai 2011 à 16:06
J'aimerais à présent, à chaque ajout de ligne, vérifier préalablement que l'utilisateur a bien saisi une valeur dans toutes les zones. Comment faire pour balayer les 5 cellules de chaque ligne (un simple test d'existence des données suffirait)?
Voici les fonctions JS permettant la gestion dynamique du tableau des lignes de commande :
/* trouve le tag "parentTagName" parent de "element" */
function getParent(element, parentTagName) {
if ( ! element )
return null; else if ( element.nodeType 1 && element.tagName.toLowerCase() parentTagName.toLowerCase() )
return element;
else
return getParent(element.parentNode, parentTagName);
}
/* ajoute une ligne */
function addLigne(link)
{
// 0. tester la saisie sur toutes les zones.
// 1. récuperer le node "TABLE" à manipuler
var td = link.parentNode;
var table = getParent(td,'TABLE');
// 2. on va manipuler le TBODY
var tbody = table.tBodies[0];
// 3. on clone la ligne de reference
var newTr = tbody.rows[0].cloneNode(true);
tbody.appendChild(newTr);
if ( document.all )
newTr.style.display = "block"; // pour IE
else
newTr.style.display = "table-row"; // pour Gecko
}
/* supprimer une ligne */
function delLigne(link)
{
// 1. récuperer le node "TABLE" à manipuler
var td = link.parentNode;
var table = getParent(td, 'TABLE');
// 2. récuperer le TBODY
var tbody = table.tBodies[0];
// 3. Supprimer le TR
tbody.removeChild(getParent(td, 'TR'));
}
window.onload = dtableInit;
/* initialise le script */
function dtableInit()
{
var table = document.getElementsByTagName('TABLE');
for ( var i = 0; i < table.length; i++ )
{
// on récupère tous les tableaux dynamiques
if ( table[i].className == 'dTable' )
{
var tbody = table[i].tBodies[0];
var newTr = tbody.rows[0].cloneNode(true);
// on masque la première ligne du tbody (la ligne de reference)
tbody.rows[0].style.display = 'none';
// on en ajoute une
tbody.appendChild(newTr);
}
}
}
Et le code html correspondant :
----
Part Number,
Description,
Prix unitaire HT,
Qté,
Total,
Action,
orionis1
Messages postés40Date d'inscriptionmardi 20 novembre 2007StatutMembreDernière intervention 7 juillet 2010 4 déc. 2007 à 09:57
Re-bonjour,
Mon projet avance (oui, je sais, j'écris toujours ça, mais c'est vrai ;o)
Je butte actuellement sur ceci :
je saisis un montant unitaire du port pour mon bon de commande, et je voudrais que le total du port s'affiche à partir de cette saisie.
Pour l'instant, la quantité est à 1, donc il y a égalité entre les montants, mais dans une future case, on pourra saisir du port additionnel, avec des quantités supérieures à 1.
Voilà le code HTML :
et la fonction maj_port() qui ne fonctionne pas :
function maj_port()
{
var toto=document.boncde.val_port_1.value;
alert('val_port_1='+toto);
document.boncde.tot_port_1.value = toto;
}
Firebug me dit que document.boncde.tot_port_1 n'a pas de propriété...
Comment faire?
Merci d'avance
fouratinourhen
Messages postés1Date d'inscriptiondimanche 17 avril 2011StatutMembreDernière intervention24 mai 2011 24 mai 2011 à 16:06
bonjour à tous,
je suis debutante en javascript,j'ai le probléme suivant:
j'ai cré une page html qui contienne un formulaire.Dans ce formulaire, il y a un champs de saisi (input)danslequel l'utilisateur indique le nombre des elements et aprés une clique sur le bouton , on ajoute des champs de texte (textarea) selon le nombre qui déjà indiqué.
le probléme c'est lorsque on recupére les contenus de textarea (pour les inserer dans la table d'une base données)sont vides
voila le code:
///le code en js:
function add_field() {
var bn =document.getElementById('nbre_elet').value;
var d = document.getElementById('cible');
var p = document.createElement("p");
/* var br = document.createElement("
"); */
var i=1;
for(i=1;i<=bn;i++)
{
d.appendChild(p);