使用.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