使用.remove(),以便全选复选框未提交给服务器。有没有办法在不使用jQuery .remove()的情况下删除表单元素?
但是,用户可以看到选择所有复选框在提交时“物理”从网页中删除。
取而代之,我想删除全选复选框以显示无缝但不在服务器端。即 - 我想保留页面上的输入,但在发送之前移除表单数组中的元素。
我可以在表单的元素[]数组发送到服务器并在那里删除它吗?
谢谢。
使用.remove(),以便全选复选框未提交给服务器。有没有办法在不使用jQuery .remove()的情况下删除表单元素?
但是,用户可以看到选择所有复选框在提交时“物理”从网页中删除。
取而代之,我想删除全选复选框以显示无缝但不在服务器端。即 - 我想保留页面上的输入,但在发送之前移除表单数组中的元素。
我可以在表单的元素[]数组发送到服务器并在那里删除它吗?
谢谢。
如果禁用该复选框,它不会与表单的其余部分一起发送:
$('#myInp').attr("disabled", true);
使用这种方法,您可以禁用元素期间提交后立即再次启用它:
$('#myForm').submit(function()
{
var $myInp = $('#myInp');
$myInp.attr("disabled", true);
window.setTimeout(function()
{
$myInp.attr("disabled", false);
}, 0);
});
目前,这是不可能操纵形式的数据集(和它的something that I want to see in future versions of HTML too),但你可以伪造它通过在临时禁用输入提交:
$form.submit(function(){
$input.attr('disabled', true);
setTimeout(function(){
$input.removeAttr('disabled');
}, 0);
});
Andy E和munch都有可行的解决方案。下面是另一个:
替换另一个,惰性复选框
$('#select-all-checkbox').replaceWith('<input type="checkbox"/>');
当然,如果表单提交由于某种原因失败这可能产生问题。
干净,谢谢。 – 2010-04-22 19:27:43