2015-07-02 194 views
1

我有一個聯繫表格,其中有一系列可選和必填字段。其中一個必填字段是下拉列表。它看起來像這樣:需要下拉菜單

<div> 
    <select name="favFruit[]" size="1" required> 
     <option value="apple">Apple</option> 
     <option value="banana">Banana</option> 
     <option value="plum">Plum</option> 
     <option value="pomegranate">Pomegranate</option> 
     <option value="strawberry">Strawberry</option> 
     <option value="watermelon">Watermelon</option> 
    </select> 
</div> 

jfiddle

我使用jQuery驗證所有必填字段,它工作正常。除了該字段總是顯示爲已經由用戶完成,因爲下拉菜單總是將第一個選項顯示爲默認值。所以用戶可以簡單地保持這個下拉菜單不變,jQuery假定表單已經被第一個選項填充並且被驗證。

所以我做了一個簡單的變化形式離開第一場空白加入

<option value=""></option> 

您可以在這裏找到工作的例子:jfiddle

現在,這個顯示爲空白,直到用戶選擇下拉菜單中的一個選項。問題是,我知道這是不是語義正確的,因爲W3C驗證不喜歡它,說明

Error: Element option without attribute label must not be empty.

什麼是正確的方式來做到這一點,以便它迫使用戶實際做出選擇,符合糾正加價?

+0

將東西放在那裏會出現什麼問題? 'value'屬性必須爲空,'option'不能。 '<選項值=「」>請選擇...'將工作得很好,並應通過W3C驗證:http://jsfiddle.net/zr74ku5r/ – Sparky

回答

0

我有與materializecss類似的問題。

所以我做了什麼我給第一個選項,它爲u寫,但這樣的方式:

<option value="" disabled> Make a choice: 

用戶知道他必須選擇某事,你可以檢查其空。 你仍然可以用jquery檢測它,而不是讓它被驗證。

+0

不幸的是,這是行不通的。蘋果仍然是違約和輸入選項。 [jfiddle](http://jsfiddle.net/cairns/cp3np6L4/) – Cairns80

+0

嗯它可能有點依賴於瀏覽器使用'禁用'屬性。嘗試沒有它,它仍然是可選的空值。但是你可以驗證它並做出迴應。 –

+0