2014-10-24 1 views
3

Рассмотрим следующий HTML:Почему только для чтения поле ввода не действует

<input bar value="bar"> 

<input foo readonly value="foo"> 

Странная вещь здесь является то, что первый элемент ввода является действительным, а второй один не только потому, что это только для чтения!

$('[bar]').is(':valid') === true 

$('[foo]').is(':valid') === false 

DEMO/JSFIDDLE

Что здесь происходит? И как я могу это исправить?

ответ

7

Входы только для чтения: barred from constraint validation, в соответствии с HTML5 docs.

Это означает, что вход только для чтения недействителен и недействителен.

Здесь какой-то код, который демонстрирует его (see fiddle):

HTML:

<input type="email" value="invalidemail"> 
<input type="email" value="[email protected]"> 

<input type="email" readonly value="invalidemail"> 
<input type="email" readonly value="[email protected]"> 

CSS:

input:invalid { 
    background-color: red; 
} 
input:valid { 
    background-color: green; 
} 
+1

спасибо большое, это имеет смысл сейчас :) Я обновил jsfiddle немного [здесь] (http://jsfiddle.net/n1vykgxg/12/), чтобы визуализировать его еще больше! –

Смежные вопросы