setCustomValidity不是函数

时间:2018-07-29 16:15:15

标签: javascript jquery html html5 validation

这是我运行的简单代码,希望获得对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>

4 个答案:

答案 0 :(得分:0)

尝试

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

和html

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

答案 1 :(得分:0)

您可以简单地执行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'/>

答案 2 :(得分:0)

jQuery没有setCustomValidity函数,但是实际的DOM元素却有。 jQuery选择器始终返回一个数组,因此您可以使用零索引获取实际的DOM元素,也可以仅使用this(而不是$(this))获取可以在其上设置DOM元素的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>

答案 3 :(得分:0)

您可以使用类似

的语法
$('#id**^**.class')[0].setCustomValidity('**some notification string ...**');