在我下面的代码中。总共有 8 个文本框用 div 包裹,id 从fa1
to fa8
。
fa1 和 fa2 默认设置为显示
使用 add \ remove 按钮(
addfa
和removefa
)添加和删除其他 div 并使用hidden
输入元素跟踪计数value
(默认值 3)一旦显示所有隐藏的 div(即
countfa
= 9),添加按钮就会被禁用,一旦有 3 个或更多文本框(即countfa
值 4 或更多) ,删除按钮就会启用fa3 到 fa8 设置为
display:none
并使用上述添加\删除 id 来显示它们我需要将文本框与用户在表单提交后输入的数据一起保存。
我面临的问题:我正在使用隐藏输入元素的 php 代码value
在表单提交后根据用户的 div id 选择更新其依赖项。我看到即使提交表单后有 3 个或更多文本框,删除按钮仍处于禁用状态。我检查了隐藏输入是否value
正在使用新值进行更新,并且我看到它正在更新,但删除按钮仍将处于禁用状态。任何想法为什么它没有显示在启用状态。
我的html代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<form id="main" name="main" action="#text" method="post" >
<div id="fa1">
<input class="textbox" id="tbox1" name="tbox1" type="text" value="<?php if(isset($_POST['tbox1'])) { echo htmlentities ($_POST['tbox1']); }?>" /></span>
</div>
<div id="fa2">
<input class="textbox" id="tbox2" name="tbox2" type="text" value="<?php if(isset($_POST['tbox2'])) { echo htmlentities ($_POST['tbox2']); }?>" /></span>
</div>
<div id="fa3" style="<?php if(empty($_POST['tbox3'])) { echo "display:none;"; } else { echo "display:block;"; } ?>">
<input class="textbox" id="tbox3" name="tbox3" type="text" value="<?php if(isset($_POST['tbox3'])) { echo htmlentities ($_POST['tbox3']); }?>" /></span>
</div>
<div id="fa4" style="<?php if(empty($_POST['tbox4'])) { echo "display:none;"; } else { echo "display:block;"; } ?>">
<input class="textbox" id="tbox4" name="tbox4" type="text" value="<?php if(isset($_POST['tbox4'])) { echo htmlentities ($_POST['tbox4']); }?>" /></span>
</div>
<div id="fa5" style="<?php if(empty($_POST['tbox5'])) { echo "display:none;"; } else { echo "display:block;"; } ?>">
<input class="textbox" id="tbox5" name="tbox5" type="text" value="<?php if(isset($_POST['tbox5'])) { echo htmlentities ($_POST['tbox5']); }?>" /></span>
</div>
<div id="fa6" style="<?php if(empty($_POST['tbox6'])) { echo "display:none;"; } else { echo "display:block;"; } ?>">
<input class="textbox" id="tbox6" name="tbox6" type="text" value="<?php if(isset($_POST['tbox6'])) { echo htmlentities ($_POST['tbox6']); }?>" /></span>
</div>
<div id="fa7" style="<?php if(empty($_POST['tbox7'])) { echo "display:none;"; } else { echo "display:block;"; } ?>">
<input class="textbox" id="tbox7" name="tbox7" type="text" value="<?php if(isset($_POST['tbox7'])) { echo htmlentities ($_POST['tbox7']); }?>" /></span>
</div>
<div id="fa8" style="<?php if(empty($_POST['tbox8'])) { echo "display:none;"; } else { echo "display:block;"; } ?>">
<input class="textbox" id="tbox8" name="tbox8" type="text" value="<?php if(isset($_POST['tbox8'])) { echo htmlentities ($_POST['tbox8']); }?>" /></span>
</div>
<?php
if(isset($_POST['countfa'])){
$valueid = $_POST['countfa'];
?>
<input type="hidden" id="countfa" name="countfa" value="<?= $valueid ?>" readonly>
<?php
}else{
?>
<input type="hidden" id="countfa" name="countfa" value="3" readonly>
<?php
}
?>
<button type="button" onClick="AddNewFa();" id="addfa" > + Add New FA </button>
<button type="button" onClick="RemoveNewFa();" id="removefa" disabled="disabled"> - Remove FA</button>
<input id="generate" type="submit" name="script" value="create my symcli script" />
</form>
</body>
</html>
和我的 javascript 代码:
function AddNewFa()
{
var facount = parseInt($('#countfa').val(),9) ;
document.getElementById("test1").innerHTML = facount;
if( facount < 10)
{
facount = facount+1;
document.getElementById("test2").innerHTML = facount;
for(i=3;i<10;i++)
{
if( i<facount )
$('#fa'+i).slideDown("fast");
else
$('#fa'+i).slideUp("fast");
}
$('#countfa').val(facount);
}
if( facount >=9 )
{ $('#addfa').attr('disabled','disabled');}
if( facount >=4 )
{ $('#removefa').removeAttr("disabled");}
}
function RemoveNewFa()
{
var facount = parseInt($('#countfa').val(),10) ;
document.getElementById("test3").innerHTML = facount;
if( facount >3)
{
facount = facount-1;
document.getElementById("test4").innerHTML = facount;
for(i=3;i<10;i++)
{
if( i<facount )
$('#fa'+i).slideDown("fast");
else
$('#fa'+i).slideUp("fast");
}
$('#countfa').val(facount);
}
if( facount <=3 )
{ $('#removefa').attr('disabled','disabled');}
if( facount <=8 )
{ $('#addfa').removeAttr("disabled"); }
}
我为此设置了一个PHP FIDDLE注意:在 php fiddle 中,添加按钮在表单提交后不起作用。但我在实际网站上看到它工作正常。删除按钮仍然不起作用