2013-10-28 60 views
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之外,還有什麼我可以做的,它實際上消除了這部分表單的任何痕跡?

+2

'禁用= disabled'將阻止它從發佈。 –

+0

我敢肯定,如果你隱藏*和*禁用輸入項目,它不會發布。 – asawyer

+0

我想克隆表並將它放在表單外的隱藏div中,然後從表單中移除表。 – yent

回答

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); 
    } 
} 
1

我認爲如果你用隱藏的方式禁用它的元素,它會做到這一點。