Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JQUERY在动态创建的表单中命名两个不同的输入_Javascript_Jquery_Html_Forms_Dynamic - Fatal编程技术网

Javascript 使用JQUERY在动态创建的表单中命名两个不同的输入

Javascript 使用JQUERY在动态创建的表单中命名两个不同的输入,javascript,jquery,html,forms,dynamic,Javascript,Jquery,Html,Forms,Dynamic,我正在编写一个程序,它需要将文本框和文本区域动态添加到表单中。我正在为此使用克隆功能。不幸的是,我似乎不知道如何使每个框具有唯一的ID。以下是我的Jquery: <script type="text/javascript"> $(document).ready(function() { $('#addButton').click(function() { var num = $('.clonedInput').length; var newNum = new Number(num

我正在编写一个程序,它需要将文本框和文本区域动态添加到表单中。我正在为此使用克隆功能。不幸的是,我似乎不知道如何使每个框具有唯一的ID。以下是我的Jquery:

<script type="text/javascript"> 
$(document).ready(function() {

$('#addButton').click(function() {
var num = $('.clonedInput').length;
var newNum = new Number(num + 1);

var newElem = $('#form1').clone().attr('id', 'form' + newNum);
newElem.children(':first').attr('id', 'name' + newNum).attr('name', 'name');

$('#form' + num).after(newElem);

$(newElem).append(
   $(document.createElement('input')).attr({
       id:    'myCheckbox'  + newNum
      ,name:  'myCheckbox' + newNum
      ,value: 'myValue'
      ,type:  'checkbox'
   })
);
});

})
</script>
和我的HTML:

 <form method="post" form action="save3.php">
 <div name="forms" id="form1" class="clonedInput" width="800px">
     <label></label><textarea rows="4" cols="50" id="text1" class="text" name="text[]"      ></textarea>
 <label></label><input type="text" id="title1" class="title" name="title[]">
 </div>
 </form>
提前感谢您的帮助

您的代码错误:


您的问题似乎是您仅重命名了第一个子项的属性值,即正确获取id属性值名称的标签2:

newElem.children(':first').attr('id', 'name' + newNum).attr('name', 'name');
但我看不到任何代码以相同的方式处理textarea和input字段。有几种方法可以做到这一点,其中之一是:

$('#form' + newNum + ' textarea').attr('id','text' + newNum);
$('#form' + newNum + ' input[type="text"]').attr('id','title' + newNum);

请参见

不确定这是否是复制/粘贴问题,但您丢失了};在脚本的末尾…还有无效的HTML,form action=???而且它似乎确实有效->这些都是复制和粘贴问题,对不起。我有更多的代码,但我的问题是,我需要文本框和文本区域ID的不同。如果你看JS提琴,它们都有text1的ID
$('#form' + newNum + ' textarea').attr('id','text' + newNum);
$('#form' + newNum + ' input[type="text"]').attr('id','title' + newNum);