Ceci est une question en deux parties. Quelqu'un a répondu à une question similaire l'autre jour (qui contenait également des informations sur ce type de tableau en PHP), mais je ne peux pas le trouver.HTML formulaire d'entrée tag nom élément tableau avec JavaScript
1.) Tout d'abord, quelle est la terminologie correcte pour un tableau créé à la fin de l'élément name d'un tag d'entrée dans un formulaire?
<form>
<input name="p_id[]" value="0"/>
<input name="p_id[]" value="1"/>
<input name="p_id[]" value="2"/>
</form>
2.) Comment obtenir les informations de ce tableau avec JavaScript? Plus précisément, je veux juste maintenant compter les éléments du tableau. Voici ce que j'ai fait, mais ça ne marche pas.
function form_check(){
for(var i = 0; i < count(document.form.p_id[]); i++){ //Error on this line
if (document.form.p_name[i].value == ''){
window.alert('Name Message');
document.form.p_name[i].focus();
break;
}
else{
if (document.form.p_price[i].value == ''){
window.alert('Price Message');
document.form.p_price[i].focus();
break;
}
else{
update_confirmation();
}
}
}
}
Merci, c'est exactement ce que je cherchais. Je l'ai modifié un peu si ... 'pour (i = 0; i
ubiquibacon
Utiliser 'i' comme global n'est pas une bonne idée (Il ne fait que vous demander de vous mordre, que ce soit maintenant ou dans le futur parce que vous avez de mauvaises habitudes). Utiliser 'document.form' est une mauvaise pratique parce que (a) la collection' document.forms' clarifiera ce que vous faites et 'form' n'est pas un nom très détaillé (et' document.form' pourrait être confondu avec 'document.forms' qui rend la maintenance plus confuse.Faire des choses sur une seule ligne est bien, cependant, j'étais juste plus explicite, donc vous pouviez voir ce qui se passe – Quentin
@Quentin:' for (var i ...) 'est en fait le même que' var i; for (i ...) 'parce que [les variables JavaScript sont fonction étendue] (http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html), pas block-scoped comme c'est le cas dans beaucoup de langages OO populaires – Laoujin