У меня есть форма регистрации, она не использует html тэг form, а работает исключительно на ajax запросах. Мне нужно сделать подсказки с выводом ошибок для поля, что-то новое придумывать не хочу. Но setCustomValidity не работает для меня, как исправить?
$(document).ready(function () {
$(".input_form_input").focusout(function () {
th = $(this).attr("id");
val = $(this).val();
if (th != "RpassRegister") {
$.ajax({
type: 'POST',
url: '/Register',
data: {"type": "correct", "input": th, "data": val},
success: function (data) {
if(val != "") {
if (data == "") {
$('#' + th).css("border-color", "#44f124");
} else {
$('#' + th).css("border-color", "red");
//$('#' + th).setCustomValidity(data); Тут ошибка
}
}
},
});
} else {
val1 = $("#passRegister").val();
val2 = $("#RpassRegister").val();
if(val1 != "") {
if (val1 == val2) {
$("#RpassRegister").css("border-color", "#44f124");
} else {
$("#RpassRegister").css("border-color", "red");
}
}
}
});
});
Метод setCustomValidity принадлежит DOM, что означает что такого метода в JQuery нет. Вам нужно получить объект JQuery и выбрать у него индекс [0], чтобы использовать DOM элемент. Код будет таким:
$('#' + th)[0].setCustomValidity(data);
$('#' + th)[0].setCustomValidity(data);
потому что метод HTMLSelectElement: https://developer.mozilla.org/ru/docs/Web/API/HTMLSelectElement/setCustomValidity
ПРИМЕР (подсказка на поле ввода в форме):
<form>
<input id="id1" type="text" required/>
<button onclick="$('#id1')[0].setCustomValidity('test error');">OK</button>
</form>
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости