使用.remove()以便不会向服务器提交全选复选框。
但是,用户可以看到它,因为在提交时,从网页上“物理地”删除了全部选中复选框。
相反,我想删除select all复选框以显示无缝但不在服务器端。 ie - 我想保留页面上的输入,但在发送之前删除表单数组中的元素。
我可以在将表单的element []数组发送到服务器并将其删除之前对其进行操作吗?
谢谢。
答案 0 :(得分:7)
如果您禁用该复选框,则不会将其与表单的其余部分一起发送:
$('#myInp').attr("disabled", true);
使用此方法,您可以在提交期间禁用该元素,并在以下情况后立即再次启用该元素:
$('#myForm').submit(function()
{
var $myInp = $('#myInp');
$myInp.attr("disabled", true);
window.setTimeout(function ()
{
$myInp.attr("disabled", false);
}, 0);
});
答案 1 :(得分:2)
将其替换为另一个惰性复选框
$('#select-all-checkbox').replaceWith( '<input type="checkbox"/>' );
当然,如果表单提交由于某种原因失败,这可能会产生问题。
答案 2 :(得分:1)
目前,无法操纵表单数据集(并且它是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);
});