SetCustomValidity не является функцией

Это простой код, который я запускаю в надежде получить контроль над проверкой 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>

В моем html5 ... думаю

azam khan 29.07.2018 18:33
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
6 624
4

Ответы 4

попробуй

$this[0].setCustomValidity("slkdjf");

И HTML

<form> 
    <input type = "text" id = "tocheck">
    <button type = "submit">Button</button>
</form>

Вы должны использовать HTMLSelectElement, а не Jquery Element. Этот код работает?

VolArt 29.07.2018 18:34

сообщение об ошибке не отображается в консоли браузера. но я ожидал, что появится сообщение о проверке, но ничего не отображается.

azam khan 29.07.2018 18:47

Ваше новое сообщение будет работать внутри <form> </form>, когда вы нажмете кнопку «Отправить».

VolArt 29.07.2018 18:56

Я использовал его в случае нажатия кнопки отправки, но я выполняю там проверку и хочу показать сообщение оттуда и отменить отправку. здесь я показал простую часть этого

azam khan 29.07.2018 19:02

Покажите вам проверку кода и когда вы установите в нем setCustomValidity.

VolArt 29.07.2018 19:12

хорошо, спасибо .. я понял .. достоверность отчета - вот о чем я спрашивал ..

azam khan 29.07.2018 19:18

Вы можете просто сделать 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'/>

хорошо, он не выдает сообщение об ошибке, как раньше. но я ожидаю, что появится сообщение проверки, которое не отображается, когда я нажимаю на элемент ввода

azam khan 29.07.2018 18:46

@azamkhan вам нужно убрать мышь с ввода и повторно навести на нее

Kiran Shahi 29.07.2018 18:55

Я прикрепил событие к событию щелчка .. Я не думаю, что оно должно работать при наведении курсора ..

azam khan 29.07.2018 18:56

но я не получаю сообщения при нажатии или наведении курсора .. вы получили сообщение?

azam khan 29.07.2018 18:57

Проверьте ответ, если вы посмотрите что-то в этом роде

Kiran Shahi 29.07.2018 18:59

reportValidity () - вот ответ.

azam khan 29.07.2018 19:07

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 ...**');

Другие вопросы по теме