Валидация форм на HTML5 по pattern и AJAX.

Как известно, HTML5 предоставляет нам много новых плюшек для контроля вводимых пользователем данных в текстовые поля форм. Это позволило сильно облегчить JS-валидацию форм в нашей системе интернет-банкинга. Однако, столкнулся с досадным моментом: каждый браузер по своему изменяет внешний вид полей при неправильном вводе. Кроме того, основная валидация происходит при вызове метода Submit формы. У нас же так исторически сложилось, что данные передаются в виде JSON’а через AJAX по нажатию на обычный button. В результате чего родилась вот такая функция:

function ChkHTMLValidation(obj)
{
	var field = document.getElementById(obj);
	if(!field.checkValidity()){
		document.getElementByID(obj).classList.add('StateError');
		document.getElementByID('button_next').disabled=true;
	}else{
		document.getElementByID(obj).classList.remove('StateError');
		document.getElementByID('button_next').disabled=false;
	}
}

На вход функция получает ИД текстового input’а, у которого определен pattern, и проверяет корректность введенных в него данных. Если данные некорректны, на поле навешивается CSS-класс ошибки и отключается кнопка отправки формы. Если же данные корректны — CSS-класс ошибки удаляется и кнопка включается.