2010-04-22 50 views
4

使用.remove(),以便全选复选框未提交给服务器。有没有办法在不使用jQuery .remove()的情况下删除表单元素?

但是,用户可以看到选择所有复选框在提交时“物理”从网页中删除。

取而代之,我想删除全选复选框以显示无缝但不在服务器端。即 - 我想保留页面上的输入,但在发送之前移除表单数组中的元素。

我可以在表单的元素[]数组发送到服务器并在那里删除它吗?

谢谢。

回答

7

如果禁用该复选框,它不会与表单的其余部分一起发送:

$('#myInp').attr("disabled", true); 

使用这种方法,您可以禁用元素期间提交后立即再次启用它:

$('#myForm').submit(function() 
{ 
    var $myInp = $('#myInp'); 
    $myInp.attr("disabled", true); 
    window.setTimeout(function() 
    { 
     $myInp.attr("disabled", false); 
    }, 0); 
}); 
+0

干净,谢谢。 – 2010-04-22 19:27:43

2

Andy E和munch都有可行的解决方案。下面是另一个:

替换另一个,惰性复选框

$('#select-all-checkbox').replaceWith('<input type="checkbox"/>'); 

当然,如果表单提交由于某种原因失败这可能产生问题。

相关问题