2014-01-25 4 views
-1

Я пытаюсь понять этот пример проверки ввода, но он не работает. Два различных входа электронной почты не вызвать messsage ошибки:HTML5 - проверка ввода формы

js fiddle

HTML

<label>Email:</label> 
<input type="email" id="email_addr" name="email_addr"> 

<label>Repeat Email Address:</label> 
<input type="email" id="email_addr_repeat" name="email_addr_repeat" oninput="check(this)"> 

Js

function check(input) { 
if (input.value != document.getElementById('email_addr').value) { 
input.setCustomValidity('The two email addresses must match.'); 
    } else { 
    // input is valid -- reset the error message 
    input.setCustomValidity(''); 
} 
} 
+4

Эти элементы этикеток бесполезны. Они не содержат входных данных и не имеют атрибутов 'for'. – Quentin

ответ

1

Ваша проблема заключается в том, что в jsfiddle у вас есть код внутри onLoad обработчик события.

Таким образом, ваш check функция (, которая существует только в области видимости onload обработчика) не доступно из встроенного элемента атрибутов ..

Смотрите рабочий пример на http://jsfiddle.net/gaby/LLS8W/1/ (, где я поставил свой код в head. См. Верхние левые опции jsfiddle ..)

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