似乎有是幾種方式提交(POST)jQuery中禁用的表單字段:在jQuery中提交禁用表單域的最佳方法?
- 有一個隱藏字段,改變輸入更改時,並提交
- 手動附加於鍵/值對在服務器端(僅如果不是預期值改變)提交
- 還原值
我想知道它(如果有的話)被認爲是殘疾人提交表單字段的最佳實踐。顯然readOnly
是可用時的最佳選擇,但我有我需要提交的複選框,即使它們已被禁用(由於業務邏輯)。我意識到這不是一個理想的情況,但很少是web開發中的情況。
是否有一個最佳做法提交禁用的表單元素呢?
似乎有是幾種方式提交(POST)jQuery中禁用的表單字段:在jQuery中提交禁用表單域的最佳方法?
我想知道它(如果有的話)被認爲是殘疾人提交表單字段的最佳實踐。顯然readOnly
是可用時的最佳選擇,但我有我需要提交的複選框,即使它們已被禁用(由於業務邏輯)。我意識到這不是一個理想的情況,但很少是web開發中的情況。
是否有一個最佳做法提交禁用的表單元素呢?
最好的辦法是使輸入只讀 - 創建,僅僅返回false複選框,單擊事件,並改變他們的背景顏色。
沒有最好的做法,而是一個需要最少捏造。
第四個解決方案是提交表單之前啓用複選框:
$("form").submit(function() {
$("input:checkbox", this).prop("disabled", false);
});
可以使用更復雜的選擇,如果你不想重新啓用所有的複選框。
還有另一種方式,如果需要發佈的所有或某些disbaled輸入:
步驟2:的onSubmit,啓用所有以下下面的例子中的那些字段:
$( 「輸入[類= MOD]」)removeAttr( '禁用');
步驟3:郵政數據
步驟4:再次禁用這些字段(如果需要)按照下面的例子:
$( 「輸入[類= MOD]」)ATTR('禁用= 「禁用」');
禁用的表單元素不應該被提交。正確的做法是在提交時創建隱藏的輸入。這裏的HTML文檔:http://www.w3.org/TR/html4/interact/forms.html#successful-controls – Dave 2012-01-13 18:05:11
@戴夫所以你說的選項1是最好的選擇?這也是我所傾向的。另外,感謝您的文檔。 – Igor 2012-01-13 18:06:02
@GrailsGuy關於你的第一個選擇,如果你有一個禁用的表單域,爲什麼輸入會改變? – 2012-05-09 08:59:56