【发布时间】:2016-01-10 02:09:22
【问题描述】:
我正在尝试构建一个包含一些任务列表的页面。对于这一部分,我想使用动态输入字段。表单被一个 foreach 循环,它查看用户的数量。
现在的问题是标签(添加、删除和重置)除了在“第一个循环”之外不起作用。当我点击第一个循环值时,将在所有“循环”中添加一个字段,而不仅仅是第一个循环。
我的 PHP 代码:
<?php
foreach (glob(/*user as file*/) as $filename) {
echo '
<div class="col-md-4 taskblock">
<img class="taskimage" src="../../../'.$filename.'"/>
<div class="name">User</div>
<div class="dynamic-form">
<a id="add">Add</a> | <a id="remove">Remove</a> | <a id="reset">Reset</a>
<form>
<div class="inputs">
<div><input name="dynamic[]" class="field" value="1" type="text"></div>
</div>
<input name="submit" class="submit" value="Submit" type="button">
</form>
</div>
</div>
';
}
?>
还有我的脚本:
$(document).ready(function(){
var i = $('input').size() + 1;
$('#add').click(function() {
$('<div><input type="text" class="field" name="dynamic[]" value="' + i + '" /></div>').appendTo('.inputs');
i++;
});
$('#remove').click(function() {
if(i > 1) {
$('.field:last').remove();
i--;
}
});
$('#reset').click(function() {
while(i > 2) {
$('.field:last').remove();
i--;
}
});
// here's our click function for when the forms submitted
$('.submit').click(function(){
var answers = [];
$.each($('.field'), function() {
answers.push($(this).val());
});
if(answers.length == 0) {
answers = "none";
}
alert(answers);
return false;
});
});
【问题讨论】:
标签: javascript php jquery dynamic foreach