2015-05-29 61 views
8

我意識到你不應該禁用一個元素,也需要它,因爲如果用戶禁用它,用戶怎麼能使它有效?Html5表單驗證需要和禁用的元素

但是,我有一個<select>的產品,我希望我的用戶從中進行選擇。當他們選擇其中一個產品<select>時,該產品的型號只有在產品有一個或多個型號時纔會填充,啓用和需要。否則,模型選擇將被禁用並清空。

雖然我喜歡認爲自己的代碼是完美的,但我可以讓模型從未被禁用,同時也是不需要的,我並不完美。那麼,該表單是否可以提交<select>已禁用且必需?

更新從w3.org兩者

約束驗證:如果元素是必需的,並且它的值IDL屬性適用,是在模式值,和元件是可變的,並且元素的值是空字符串,那麼該元素正在遭受丟失。

查找具體是什麼意思是「可變的」。

表單控件可以被指定爲可變的。

注意:這決定了(通過本規範中的定義和要求,依賴於是否指定了某個元素),用戶是否可以修改表單控件的值或檢查,或者是否控制可以自動預填。

選擇沒有值,所以它由它的選項決定。

select元素沒有值;其選項元素的選擇是用來代替的。

所以,我認爲,這意味着如果一個<select>因素是殘疾人和需要,形式可以被認爲是有效的?

+0

請您詳細說明-1嗎?我想知道在「最壞情況」情況下會發生什麼。 – GreeKatrina

+0

儘量保持您的問題目標。 –

+1

@AlexTartan它是客觀的。無論是表單驗證與否。 – GreeKatrina

回答

6

http://www.w3.org/TR/html5/forms.html#enabling-and-disabling-form-controls:-the-disabled-attribute

約束驗證:如果一個元素被禁用,它是約束驗證禁止。

http://www.w3.org/TR/html5/forms.html#barred-from-constraint-validation

甲submittable元件是候選約束驗證當某條件除了從約束驗證禁止的元素。

最後,從約束的驗證步驟清單,http://www.w3.org/TR/html5/forms.html#constraint-validation

3.1:如果字段不是用於約束驗證的候選者,然後移動到下一個元素。


這意味着,禁用元素將剛需「通過對」當形式有效性檢查。

它不會觸發任何錯誤,也不會影響其所屬窗體的驗證狀態。

+0

謝謝!顯然,我只是沒有看到文檔的正確位置。 – GreeKatrina