0

我有一个包含多个表格的表格,每个表格中有许多输入字段。

在每个表上方,我都有一个<h2>执行此操作的位置:

$retVal .= "<h2><input value='{$category}' type='checkbox' name='Categories[]' onclick='CheckboxCategory($category);'  checked='checked' />&nbsp;" . $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除了实际删除表单这部分的任何痕迹之外,我还能做些什么吗?

4

2 回答 2

1

我认为如果你禁用元素并隐藏它会做到这一点。

于 2013-10-28T17:50:31.037 回答
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);
    }
}
于 2013-10-28T17:52:21.670 回答