这是我运行的简单代码,希望获得对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>
答案 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 ...**');