2012-01-04 77 views
3

我無法找到解決方案,無需訴諸php語句或JavaScript。這是因爲這個想法看起來很簡單,我非常肯定,如果不使用這兩種方法,必須有一種方法來做到這一點。HTML - 表單,兩個文本輸入。必需的屬性。如何,用戶必須在兩個字段中的任何一箇中輸入字符串以提交?

我有一個註冊表格,並且此表格上的某些字段是必需的。但是我遇到了一些困難,因爲我需要用戶輸入至少一個電話號碼,以便在他們的訂單出現問題時聯繫他們。

所以我有3個領域,「手機」,「手機」,「傳真」

我想要做什麼,是使它所以用戶必須以完成表單中輸入一個電話或手機號碼。

但是,我想我的問題是這樣的...是否有可能以某種方式使用required屬性,以達到這種效果?

下面是這些字段的HTML:

<li> 
<label for="phone">Phone:</label> 
<input type="tel" name="phone" id="phone" value="'.htmlout($phone).'" required aria-required="true" placeholder="0317021101"title="Please enter your home or work number here. You must enter either a phone, or mobile number." maxlength="20"/> 
</li> 
<li> 
<label for="mobile">Mobile:</label> 
<input type="tel" name="mobile" id="mobile" value="'.htmlout($mobile).'" placeholder="0827564829" title="Please enter your mobile number here. You must enter either a mobile, or phone number." maxlength="20"/> 
</li> 

援助,輸入或關於該建議將不勝感激,謝謝!

回答

3

有兩個電話號碼字段是不是更簡單,第一個是必需的?這些解釋似乎表明,這兩個數字中的任何一個都可以是手機號碼或其他的,爲什麼不讓它們在結構上對稱呢?

第一個可以標記爲「主要電話(必需)」,另一個「第二個電話(可選)」。這些標籤相當長,但根據我的經驗,太短的標籤(如「手機」和「備用手機」)往往會使一些用戶重新輸入第一個號碼。

+1

您可以從標籤中刪除「(必填)」和「(可選)」文本,只需使用現有的「必需」指示器即可。畢竟,不需要的字段_必須是可選的,對嗎? – cdeszaq 2012-01-04 17:39:34

+0

感謝您的意見,是的,這是有道理的。我確實從這個想法開始,但我從來沒有這樣想過。我相信我們有一個勝利者! – 2012-01-04 17:40:26

+0

@cdeszaq有道理! – 2012-01-04 17:45:37

2

不幸的是,required只適用於單個字段而不適用於字段組(即使它們具有相同的name),所以無法單獨使用HTML5驗證。

演示:http://jsfiddle.net/ka7kC/

你不應該在客戶端驗證依賴反正,你要在服務器端驗證也是如此。此外,並非所有瀏覽器甚至支持HTML5驗證。

如果你使用jQuery,我建議客戶端的嘗試和真正的驗證插件:

+0

謝謝你的鏈接,我會給它一個看...我希望技術會採取一個巨大的飛躍:) – 2012-01-04 17:36:26

+1

事情看起來不錯我會說。過去幾年我們走過了很長的路。無論如何,驗證插件比HTML5驗證更強大,更靈活。在標記中寫入的驗證規則對我來說總是顯得有些詭異,我個人更喜歡單獨寫它。 – 2012-01-04 17:36:57

+0

是的,你確實有一個好點。我敢肯定,插件也會更適合我,但問題是,HTML驗證讓事情看起來很酷,所以很容易:) – 2012-01-04 17:41:28

1

如果它的實際需要,只有服務器端驗證腳本實際上可以執行它。

Javascript是真正唯一的其他選項來執行復雜的(即任何比模式匹配)驗證客戶端。

0

「必需」屬性在大多數IE版本和Safari的某些版本中不起作用,因此您希望以另一種方式驗證您的輸入。

+0

這就是爲什麼我包含了WAI-ARIA必需的屬性,它在ie8 +中支持? – 2012-01-04 17:34:25