Это простой код, который я запускаю в надежде получить контроль над проверкой HTML5, но браузер говорит, что setCustomvalidity не является функцией. Что я делаю неправильно?
<!doctype html>
<html>
<head>
<meta charset = "utf-8">
<title>Untitled Document</title>
<meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1">
<meta http-equiv = "Content-Type" content = "text/html; charset=utf-8">
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</head>
<body>
<input type='text' id='tocheck' />
<script>
$("#tocheck").click(function () {
var $this = $(this);
$this.setCustomValidity("slkdjf");
});
</script>
</body>
</html>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


попробуй
$this[0].setCustomValidity("slkdjf");
И HTML
<form>
<input type = "text" id = "tocheck">
<button type = "submit">Button</button>
</form>
Вы должны использовать HTMLSelectElement, а не Jquery Element. Этот код работает?
сообщение об ошибке не отображается в консоли браузера. но я ожидал, что появится сообщение о проверке, но ничего не отображается.
Ваше новое сообщение будет работать внутри <form> </form>, когда вы нажмете кнопку «Отправить».
Я использовал его в случае нажатия кнопки отправки, но я выполняю там проверку и хочу показать сообщение оттуда и отменить отправку. здесь я показал простую часть этого
Покажите вам проверку кода и когда вы установите в нем setCustomValidity.
хорошо, спасибо .. я понял .. достоверность отчета - вот о чем я спрашивал ..
Вы можете просто сделать this.setCustomValidity("slkdjf");this - это объект DOM, тогда как $(this) - это оболочка jQuery примерно так же.
$("#tocheck").click(function(){
this.setCustomValidity("slkdjf");
$( "<p>slkdjf</p>" ).insertAfter( this );
});<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' id='tocheck'/>хорошо, он не выдает сообщение об ошибке, как раньше. но я ожидаю, что появится сообщение проверки, которое не отображается, когда я нажимаю на элемент ввода
@azamkhan вам нужно убрать мышь с ввода и повторно навести на нее
Я прикрепил событие к событию щелчка .. Я не думаю, что оно должно работать при наведении курсора ..
но я не получаю сообщения при нажатии или наведении курсора .. вы получили сообщение?
Проверьте ответ, если вы посмотрите что-то в этом роде
reportValidity () - вот ответ.
jQuery не имеет функции setCustomValidity, но фактический элемент DOM есть. Селектор jQuery всегда возвращает массив, поэтому вы можете использовать нулевой индекс, чтобы получить фактический элемент DOM, или вы можете просто использовать this (не $(this)), чтобы получить элемент DOM, для которого вы можете установить настраиваемую валидность.
<!doctype html>
<html>
<head>
<meta charset = "utf-8">
<title>Untitled Document</title>
<meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1">
<meta http-equiv = "Content-Type" content = "text/html; charset=utf-8">
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</head>
<body>
<form>
<input type='text' id='tocheck'/>
<button>
Submit
</button>
</form>
<script>
$("#tocheck").click(function(){
this.setCustomValidity("slkdjf");
});
</script>
</body>вы можете использовать синтаксис вроде
$('#id**^**.class')[0].setCustomValidity('**some notification string ...**');
В моем html5 ... думаю