2010-09-08 33 views
7

我有一個輸入框供用戶在創建表單(有點類似於Wordpress)中進入頁面的自定義鏈接。 (例如about/awards,它被用於http://site.com/pages/about/awards)在某些時候,Chrome停止工作,因爲它們現在對input type="url"字段進行了更嚴格的驗證。哪個會好,但:input type =「url」爲相對URL

  • 它不允許相關網址。關於/獎勵是相對URL,但Chrome似乎拒絕除絕對URL之外的所有內容http://domain/page/stuff
  • 失敗並不特別明顯。它只關注表單域(不是特別引人注目),並拒絕提交表單。我得到的報告是表格「不起作用」,因爲他們沒有注意到發生了什麼事情,我花了幾分鐘才明白髮生了什麼事情。

我已經只是切換回輸入型固定它=「文本」,但是這違背了一些有用的東西,type="url"添加(如特殊鍵盤上的iPhone)。

這是HTML5規範的一部分,還是Chrome實施中的問題?

+1

和你的問題是....? – GSto 2010-09-08 17:38:30

+0

@GSto:我的不好,忘了最重要的句子。 – Macha 2010-09-08 17:57:06

+0

您可以在提交時預先輸入「http://」的相對URL以使其有效。看到這裏的例子... https://stackoverflow.com/questions/17946960/with-html5-url-input-validation-assume-url-starts-with-http/41193579#41193579 – 2016-12-19 18:21:59

回答

2

它說,「雖然元素的值不是有效的絕對URL,該元素從一個類型不匹配的痛苦。」

2

該規範仍在開發中,但這個報價,這聽起來像它可能是與Chrome的執行問題(粗體強調的是我的):

用戶代理可以允許用戶設置 值的字符串,它是不是一個有效 絕對URL,但也還是 而不是自動跳脫用戶輸入 字符,以便 價值始終是一個有效的絕對 URL(即使是不實際 價值看到和編輯b y用戶在 的界面中)。用戶代理應該 允許用戶將該值設置爲 空字符串。用戶代理不得允許用戶將U + 000A LINE FEED (LF)或U + 000D CARRIAGE RETURN(CR) 字符插入值中。

Source

0

一個plausable仍然語義的解決方法,我使用是允許使用pattern屬性相對URL:

<input required="required" type="url" pattern="(https?|/).*?" name="sStyleBackgroundImageURL" value="{!sStyleBackgroundImageURL}"></input> 
+0

這不起作用(谷歌瀏覽器65.0.3325.146)。 – darkangel 2018-03-07 14:13:11