Как сделать подсказку для поля setCustomValidity?

127
22 июня 2021, 14:10

У меня есть форма регистрации, она не использует 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");
                }
            }
        }
    });
});
Answer 1

Метод setCustomValidity принадлежит DOM, что означает что такого метода в JQuery нет. Вам нужно получить объект JQuery и выбрать у него индекс [0], чтобы использовать DOM элемент. Код будет таким:

$('#' + th)[0].setCustomValidity(data);
Answer 2
$('#' + 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>
READ ALSO
JS Скачать файл в ANSI-кодировке (Windows-1251)

JS Скачать файл в ANSI-кодировке (Windows-1251)

Много вопросов было уже типа: "открываю файл с помощью <input type="file"/> и FileReader, а там значки ����� вместо русских букв"

90
Не работает якорное меню

Не работает якорное меню

использую якорное меню на сайтеИспользую такой вот код

93
.on(&#39;click&#39; в .on(&#39;click&#39; как реализовать или чем заменить

.on('click' в .on('click' как реализовать или чем заменить

При нажатии на <div name="show_details_by_order" открывается <div id="order_body_ и стает доступно нажать на <a name="show_extended_details", но при нажатии на нее срабатывает...

93
Почему position: sticky в классе .header-top не работает?

Почему position: sticky в классе .header-top не работает?

Изучаю тему позиционирования элементов, застрял на позиции stickyПо задуму шапка сайта должна прилипнуть при скроле

90