Ho un modulo nella mia app Web che richiede all'utente di inserire un URL. Ho deciso di lasciare la convalida per l'input dell'URL al server per ora, ma volevo mantenere i vantaggi dell'utilizzo del tipo di URL HTML5 per l'input del dispositivo mobile.Perché input di bootstrap twitter: focus: non valido: focus attivato quando si utilizza Novalidate?
Ecco il mio codice del modulo:
<form method="post" action="." required novalidate>{% csrf_token %}
<fieldset>
<legend>{% trans "Add Resource Link" %}</legend>
<div class="well">
<label for="id_url"><strong>{% trans "Web Address" %}</strong></label>
{% if form.url.errors %}
<div class="alert alert-error">{{ form.url.errors }}</div>
{% endif %}
<div class="input-prepend">
<span class="add-on"><i class="icon-link"></i></span>
<input id="id_url" name="url" type="url" placeholder="http://www.example.com">
</div>
<div>
<button type="submit" class="btn btn-primary">{% trans "Add Link" %}</button>
</div>
</div>
</fieldset>
</form>
Durante l'utilizzo novalidate sul modulo mi permette di inviare gli URL non validi che vengono catturati dalla convalida del server, l'ingresso: attenzione: non valida: messa a fuoco è ancora essere attivato e appare per utilizzare la convalida regex HTML5 predefinita per gli URL che è una o più lettere seguite da due punti.
cattura dello schermo di forma senza ingresso:
cattura dello schermo del modulo con input non valido:
cattura dello schermo del modulo con input valido in base alle l'espressione regolare di default per la convalida url in HTML5 (credo?):
mia domanda è perché è l'ingresso: attenzione: non valida: la messa a fuoco viene attivato quando viene utilizzato novalidate? Presumo che questo possa essere un comportamento previsto che non capisco .. Qual è la best practice raccomandata per garantire quell'input: focus: invalid: focus non attivato - cioè non voglio alcuna validazione di input dal lato client - at almeno non in questo momento. Sto testando su linux (Ubuntu 12.04) usando la versione 25.0.1364.172 di Chrome.
Non sono sicuro su questo, ma sono sempre stato sotto il Supponendo che 'novalidate' sia solo lì per suggerire che l'input non è richiesto per essere valido per inviare il modulo, e non per fornire informazioni sulla sua validità nel caso si decida di chiedere. – pickypg