单击plus
按钮时,我有一个动态行输入。但是我的行被添加到我的页面顶部,我希望在第一行之后添加它们。这是我的代码:
<?php
?>
<div style="width:90%;margin:auto;">
<form method="post">
<div id="itemRows">
</div>
</form>
</div>
<script type="text/javascript">
var rowNum = 0;
function addRow(frm) {
rowNum ++;
var row = '<p id="rowNum'+rowNum+'"> <input type="text" name="name[]" value="'+frm.add_name.value+'"> <input type="button" value="Remove" onclick="removeRow('+rowNum+');"></p>';
jQuery('#itemRows').append(row);
frm.add_qty.value = '';
frm.add_name.value = '';
$( "name[]" ).insertAfter( "#add_name" );
}
function removeRow(rnum) {
jQuery('#rowNum'+rnum).remove();
}
</script>
这是我的意见:
<b>Dimanche</b> </br><?php echo $date1 ?>
</td>
<!-- numéro de projet du dimanche -->
<td>
<span id="numpro" >
<form method="post" action="" onsubmit="return false;">
<input onclick="addRow(this.form);" type="button" value="+" />
<input type="text" id="name" name="add_name"onkeypress="return handleEnter(event, this, 'task');"/>
<?php
if($result!=false && mysqli_num_rows($result)>0){
while($product = mysqli_fetch_array($result)):
?>
<p id="oldRow<?=$product['id']?>"> <input type="text" name="name<?=$product['id']?>" value="<?=$product['name']?>" /> <input type="checkbox" name="delete_ids[]" value="<?=$product['id']?>"> Mark to delete</p>
<?php
endwhile;
}
?>
</form>
答案 0 :(得分:2)
使用JQuery的.append()方法在特定标记内一个接一个地添加元素。
使用以下行更改您的代码:
$( "name[]" ).append( "#add_name" );
答案 1 :(得分:0)
您可以使用jQuery中的.after
函数追加特定元素
https://api.jquery.com/after/
答案 2 :(得分:0)
追加函数/ insertAfter将起作用。
但是在你的代码中,你直接使用了元素属性
$( "name[]" ).insertAfter( "#add_name" );
或
$( "name[]" ).append( "#add_name" );
相反,您需要使用以下内容:
将文本框“name []”的名称值更改为其他名称,例如“name_test”,并在“add_name”之后追加
您还使用“add_name”作为标识( "#add_name" )
,但它是输入文本框的名称属性。
您需要追加row
中创建的整行,以便在“add_name”之后变通
您需要将代码更改为
$("input[name=add_name]" ).after(row);
但是,它仍然在每个元素的顶部添加,即以堆栈方式添加。
因此,您需要通过“add_name”parent ,即表单和在该父中追加
$( "input[name=add_name]" ).parent().append(row);
它应该工作:)
以上情况为 DEMO Fiddle 。