2010-09-08 13 views
7

Posiadałem pole do wprowadzania danych, umożliwiające użytkownikom wprowadzanie niestandardowego linku do strony z poziomu formularza tworzenia (trochę podobnego do Wordpress). (np. about/awards, który zostanie użyty w przypadku http://site.com/pages/about/awards) W pewnym momencie przestało działać w przeglądarce Chrome, ponieważ obecnie bardziej rygorystycznie sprawdza poprawność pola input type="url". Który byłby dobry, ale:typ danych wejściowych = "url" dla względnych adresów URL

  • Nie zezwala na względne adresy URL. about/awards to względny adres URL, ale wydaje się, że Chrome odrzuca wszystko oprócz bezwzględnych adresów URL. http://domain/page/stuff
  • Niepowodzenie nie jest szczególnie oczywiste. Po prostu koncentruje się na polu formularza (co nie jest szczególnie zauważalne) i odmawia przesłania formularza. Otrzymałem raport, że formularz "nie działa", ponieważ nie zauważyli, co się dzieje, i zajęło mi kilka minut, aby zdać sobie sprawę z tego, co się dzieje.

Naprawiłem go tylko przełączenie z powrotem do input type = „text”, ale ten pokonuje niektóre z przydatnych rzeczy, które type="url" dodanej (takie jak specjalnej klawiatury na iPhone).

Czy jest to część specyfikacji HTML5, czy problem z implementacją Chrome?

+1

i pytanie jest ....? – GSto

+0

@GSto: Mój zły, zapomniałem najważniejszego zdania. – Macha

+0

Możesz przesłać względny adres URL z "http: //" po przesłaniu, aby był prawidłowy. Zobacz przykłady tutaj ... https: //stackoverflow.com/questions/17946960/with-html5-url-input-validation-assume-url-starts-with-http/41193579#41193579 –

Odpowiedz

2

on mówi: „Podczas gdy wartość elementu nie jest ważny absolutny URL, element cierpi na rodzaj niedopasowania”.

2

Spec jest nadal pracował, ale z tego cytatu, to brzmi jak to może być problem z realizacją Chrome (pogrubienie podkreślenie moje):

klienckie mogą pozwolić użytkownikowi na ustawienie wartość na ciąg znaków, który nie jest obowiązuje bezwzględny adres URL, ale może również automatycznie lub zamiast ucieczki znaków wprowadzonych przez użytkownika, tak aby wartość jest zawsze ważna bezwzględna URL (nawet jeśli nie jest to rzeczywista wartość widziana i edytowana b y użytkownik w interfejsie ). Aplikacje klienckie powinny umożliwiać użytkownikowi ustawienie wartości pustego ciągu znaków . Aplikacje użytkownika nie mogą zezwalać użytkownikom na wstawianie znaków U + 000A PODAWANIE LINII (LF) lub U + 000D CARRIAGE RETURN (CR) do wartości.

Source

0

plausable nadal semantyczny obejście że używam jest umożliwienie względnych adresów URL przy użyciu atrybutu pattern:

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

To nie działa (Google Chrome 65,0.3325.146). – darkangel

Powiązane problemy