我在我的web應用程序中有一個表單,它要求用戶輸入一個url。我決定暫時將驗證輸入到服務器,但希望保留爲移動設備輸入使用HTML5 url類型的優惠。爲什麼twitter自舉輸入:焦點:無效:使用novalidate時觸發焦點?
這裏是我的表單代碼:
<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>
雖然使用表上的novalidate讓我提交了由服務器驗證,輸入捕獲無效網址:重點:無效:關注焦點依然被觸發,並出現要使用默認的HTML5正則表達式驗證URL是一個或多個字母后跟一個冒號。具有根據有效的輸入形式的
抓屏:與無效的輸入形式的
抓屏:無輸入的形式的
抓屏默認的正則表達式驗證HTML5中的網址(我認爲?):
我的問題是爲什麼輸入:focus:invalid:當使用novalidate時會觸發焦點?我認爲這可能是預期的行爲,我不明白..什麼是建議的最佳做法,以確保輸入:焦點:無效:焦點不會觸發 - 即我不希望任何輸入驗證在客戶端 - 在至少不是在這個時候。我正在使用Chrome版本25.0.1364.172在Linux(Ubuntu 12.04)上進行測試。
我不知道這一點,但我一直下假設'novalidate'只是表明輸入不需要有效,才能提交表單,而且如果您決定詢問,則不提供有關其有效性的信息。 – pickypg