2009-11-17 3 views
0

Le code:Construire des noms de champ de formulaire dynamiquement en JavaScript et attribuer des valeurs

function updateValues(res){ 
       var rows=res.ROWCOUNT; 
       for (i=0;i<rows;i++){ 
        var x='document.Eventform.txt_'+res.DATA.EVENT_LENDER_ID[i]; 
        x.value=res.DATA.EVENT_DAYS[i]; 
       } 
      } 

res est un objet JSON est passé à la fonction et nous avons besoin de construire dynamiquement les noms des champs de formulaire et attribuer des valeurs à ces champs (la forme les noms de champs qui sont dynamiquement construits existeront dans le formulaire).

+0

fonction updateValues ​​(res) { \t \t \t \t var rows = res.ROWCOUNT; \t \t \t \t for (i = 0; i krishna

+0

la fonction javscript est comme ci-dessus – krishna

+0

pouvez-vous envoyer le code html ainsi que votre javascript et peut-être votre objet JSON ~ un exemple simple est le meilleur –

Répondre

0

Le code suivant devrait faire ce que vous voulez

function updateValues(res) { 
    var rows = res.ROWCOUNT; 
    var form = document.forms['EventForm']; 

    for (var i=0; i<rows; i++) { 
     form.elements['txt_' + res.DATA.EVENT_LENDER_ID[i]].value = res.DATA.EVENT_DAYS[i]; 
    } 
} 

Cependant, si vous pouvez modifier la mise en page de l'objet JSON à quelque chose d'autre que vous pourriez être en mesure de faire ce code un peu plus propre:

function updateValues(res) { 
    var form = document.forms['EventForm']; 
    for (var name in res) { 
     form.elements['txt_' + name].value = res[name]; 
    } 
} 

Encore mieux si les champs de formulaire avaient leur attribut id défini sur le nom contenu dans l'objet JSON. Dans ce cas, les éléments suivants fonctionnerait (en liaison avec le changement de l'objet JSON):

function updateValues(res) { 
    for (name in res) { 
     document.getElementById(name).value = res[name]; 
    } 
} 
1

Si vous voulez créer une forme dynamique de javascript vous pouvez le faire comme ça ...

<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
    <title>JS Example</title> 
</head> 
<body> 

    <div id="formContainerDiv"> 

    </div> 

    <script type="text/javascript"> 

     var form = document.createElement('form'); 

     for (var i = 0; i < 10; i++) { 

      var element = document.createElement('input'); 

      element.type = 'text'; 
      element.value = i.toString(); 

      form.appendChild(element); 
     } 

     var submit = document.createElement('input'); 

     submit.type = 'submit'; 
     submit.value = 'submit'; 

     form.appendChild(submit); 

     document.getElementById('formContainerDiv').appendChild(form); 

    </script> 
</body> 
</html> 
Questions connexes