我有一个包含多个表的表单,每个表中都有许多输入字段。
在每张桌子上方,我有一个<h2>
,我这样做:
$retVal .= "<h2><input value='{$category}' type='checkbox' name='Categories[]' onclick='CheckboxCategory($category);' checked='checked' /> " . $MSCategories[$i] ."</h2>";
// below this is table
$retVal .= "<table id=\"tableId{$category}\" class=\"search_table\" style='border-spacing: 0px;'>\n";
// edited out
$retVal .= "</table>";
我们的想法是,如果他们选中此框(在<h2>
中),则会运行此脚本:
function CheckboxCategory(catUniqueKey) {
// jQuery
if ($("#tableId" + catUniqueKey).is(":visible")) {
$("#tableId" + catUniqueKey).hide();
} else {
$("#tableId" + catUniqueKey).show();
}
}
我想隐藏这个特定的表,以便它不会发布任何值(而不是用户下去和取消选中几十个框)。这个顶级复选框我想照顾它。
但显然,如果选中了复选框,则当表格被隐藏时,它仍会发布该值。
除了hide
之外我还能做些什么来实际删除表格中这部分的痕迹吗?
答案 0 :(得分:1)
我认为如果你将元素与隐藏一起禁用它就可以了。
答案 1 :(得分:1)
hidden
元素将发布到服务器,但disabled
将不会发布,因此您必须禁用元素
试试这个
function CheckboxCategory(catUniqueKey) {
// jQuery
if ($("#tableId" + catUniqueKey).is(":visible")) {
$("#tableId" + catUniqueKey).hide();
$("#tableId" + catUniqueKey).prop('disabled',true);
} else {
$("#tableId" + catUniqueKey).show();
$("#tableId" + catUniqueKey).prop('disabled',false);
}
}