【问题标题】:jquery - how to append input with name array to a row?jquery - 如何将带有名称数组的输入附加到一行?
【发布时间】:2011-10-09 17:15:49
【问题描述】:

我正在设置一个表单,它将动态创建一个文本字段并将其附加到表格中。文本字段的名称是一个数组,因此它包含括号。下面的代码不附加输入字段,而是返回 [object HTMLInputElement]。我假设这是因为括号?有没有办法做到这一点?

//HTML
<table id="notesplus" cellpadding="0" cellspacing="0">
<thead></thead>
<tbody></tbody>
</table>

//JQUERY
$(document).ready(function() {
  $('input[id=addIt]').live('click', function() {
     addPlus();
  });
});

function addPlus() {
  var item = document.createElement("textarea");
  item.setAttribute("name", "section[0][aplus]"+mycount+"[notes]");

  var sRow1 = $('<tr>').appendTo('table#notesplus tbody');
  var sCell1 = $('<td>').html(item).appendTo(sRow1);
}

【问题讨论】:

    标签: jquery forms input append


    【解决方案1】:

    目前您正尝试使用html 插入 HTML 对象 - 但 jQuery 期望在此处接收HTML string,因此在将对象附加到单元格之前将其转换为文本。

    将最后一行改为:

    var sCell1 = $('<td>').append(item).appendTo(sRow1);
    

    【讨论】:

      【解决方案2】:

      首先将您的选择器$('input[id=addIt]') 更改为$('#addIt')。它要快得多。

      我也检查了你的代码,它可以工作。唯一的事情是我添加了mycount 变量。

      代码:http://jsfiddle.net/qha9f/1/

      【讨论】:

        【解决方案3】:

        我会尝试这样做,看看是否有效。

        function addPlus() {
          var item = document.createElement("textarea");
          var strName = "section[0][aplus]"+mycount+"[notes]";
          item.setAttribute("name", strName);
        
          $('table#notesplus tbody').append('<tr><td></td></tr>');
          $('table#notesplus tbody tr:last-child td').append(item);      
        

        }

        或类似的东西。

        【讨论】:

          猜你喜欢
          • 2020-12-01
          • 2010-12-19
          • 1970-01-01
          • 2021-12-29
          • 1970-01-01
          • 2021-10-09
          • 1970-01-01
          • 2021-12-10
          • 1970-01-01
          相关资源
          最近更新 更多