2010-07-25 3 views
3

Je souhaite enregistrer plusieurs enregistrements individuels pour un même modèle. Donc, ma forme aura <input> éléments avec des ID qui ressemblent à ceci: Author0Title; Author1Title; Author2Title, etc.Comment définir la valeur des champs de formulaire

Je vais obtenir des valeurs pour ces entrées en utilisant la méthode jQuery.getJSON().

Je souhaite attribuer automatiquement des valeurs individuelles à ces entrées.

document.getElementById('Author0Title').value = respose.data[0].title; 

quelque chose comme ..

for(i=0;i<response.data.length; i++){ 
    var id = 'Author' + i + 'Title'; 
    document.getElementById(id).value = respose.data[0].title; 
} 

Mais il ne fonctionne pas. J'apprécie toute aide.

Merci.

+0

est-ce que cela vous dérangerait de poster ici toute la section du code, qui s'occupe de cela? –

+0

À quoi ressemble votre JSON? –

Répondre

1

Se pourrait-il que vous ayez mal orthographié respose -> réponse?

Sinon, "devrait fonctionner". En supposant que votre JSON correspond réellement à ce que vous recherchez dans ce code.

Étant donné que vous utilisez jQuery, vous pouvez utiliser $('#Author' + i + 'Title').val(response.data[i].title); à la place - bien qu'il fasse la même chose.

3

Si vous utilisez jQuery:

for (var i = 0; i < response.data.length; i++) { 
    $('#Author' + i + 'Title').val(response.data[i].title); 
} 

qui est assez proche de votre exemple, sauf que vous avez « 0 » codé comme l'indice au lieu de « i ».

Assurez-vous que vos éléments <input> utilisent vraiment à la fois un "id" et un "nom" construit comme prévu. S'ils obtiennent simplement le jeu d'attributs "name", vous pouvez faire ceci:

$('input[name=Author' + i + 'Title]').val(response.data[i].title); 
Questions connexes