动态创建的输入框和设置值

时间:2012-05-30 13:59:42

标签: jquery html json

这是我在页面中获得的json数据。每次都会带来不同的数据和长度。

 {
       "d":[
          {

             "MenuItem":"AboutUs",
             "NoOfColumn":0,
             "ColumnNo":0,
             "ContentType":1,
             "MenuContent":"testtest",
             "Header":"Header",
             "MenuItemID":2,

          },
          {
             "MenuItem":"AboutUs",
             "NoOfColumn":0,
             "ColumnNo":1,
             "ContentType":1,
             "MenuContent":"sdfsdfsdfsdfsdfdsfsdf",
             "Header":"Header",
             "MenuItemID":2,
          }
       ]
    }

所以我想创建动态字段并尝试绑定它。我尝试:

       var contain = data.d;
       var html = "";
       $.each(contain, function(index, item) {
        html += '<input type="text" val=' + item.Header + ' id=txtColumnHeader_' + item.ColumnNo + ' class="Inputbox" />';

       var txtColumnHeader="txtColumnHeader_"item.ColumnNo;
       $('#'+txtColumnHeader).val(item.MenuItem);  //Its not work.Want help here. data.d have value.
    alert(item.MenuItem);
       });
 $('#divEdit').html(html);//Div is in html page its not created dynamically.

我也试试:

$('#'+txtColumnHeader).text(item.MenuItem);

但它也没有用。但警告给了我一个正确的价值。我的错误是什么。我错了。谢谢。

1 个答案:

答案 0 :(得分:0)

var html = "";
$.each(contain, function(index, item) {
    html += '<input type="text" id="txtColumnHeader_' + 
            item.ColumnNo + '" class="Inputbox" value="' + item.MenuItem + '" />';
});

.val()不是必需的,因为您在初始化时设置了值。

但如果您想使用.val(),请尝试:

var txtColumnHeader="txtColumnHeader_" + item.ColumnNo;

                                       ^--- you missed this `+` here

$('#'+txtColumnHeader).val(item.MenuItem);