在JavaScript中动态构建表单字段名称并分配值

时间:2009-11-17 00:19:19

标签: javascript

代码:

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是传递给函数的JSON对象,我们需要动态构建表单字段名称并为这些字段赋值(动态构建的表单字段名称将存在于表单中)。

2 个答案:

答案 0 :(得分:1)

如果你想从javascript动态创建一个表单,你可以这样做......

<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>

答案 1 :(得分:0)

以下代码应该做你想做的事情

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];
   }
}

但是,如果您可以将JSON对象的布局更改为其他内容,则可以使该代码更清晰一些:

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

如果表单字段的id属性设置为JSON对象中包含的名称,那就更好了。在这种情况下,以下内容将起作用(与更改JSON对象一起使用):

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