在append()之后改变输入的值

时间:2013-08-05 14:33:02

标签: javascript jquery

我创建了一个模板html块,允许我在单击Add按钮时复制该块。这是通过append()

完成的

如何更改name='category[]'输入字段后的值?

例如:

$('#add').click(function() {
   $('#LinesContainer').append($('#templatePlan').html());
   var getCategory = $("#selectCategory").val();
   // How to put getCategory value into category[] field?
});

选择类别,然后单击+按钮

<div>
  <select id="selectCategory">
      <option value="New">New</option>
      <option value="Old">Old</option>
  </select>
  <input value="+" id="add" type="button"/>
</div>

模板块

<div id="templatePlan" style="display:none;">
 <div style='padding: 5px; border: 1px solid white; background-color: #FFA86F;'>
  <select name="selectType[]"> 
       <option>Consumer</option>
       <option>Business</option>
  </select>
  <input name='category[]' type='hidden' value='' />
 </div>
</div>


<div id="LinesContainer"> </div>

我不确定这是否是一种实现它的简洁方法,还有其他更好的方法吗?

2 个答案:

答案 0 :(得分:1)

选择它。我建议您使用.clone()作为模板而不是innerHTML,这样可以更轻松地进行选择。否则,您可能有多个类别输入,必须使用最后一个。

$('#add').click(function() {
   $('#templatePlan').children('div').clone().appendTo('#LinesContainer')
    .find('input name="category[]"').val($("#selectCategory").val());
});

答案 1 :(得分:0)

    //after
     var getCategory = $("#selectCategory").val();

//To set the actual input
    $('input[type="hidden"]').val(getCategory);
//or to update the attribute rather
 $('input[type="hidden"]').attr('name', 'category[' + getCategory + ']');