jQuery支持“:无效”选择 [英] jQuery support ":invalid" selector

查看:238
本文介绍了jQuery支持“:无效”选择的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  [16:04:01.292]错误:语法错误,无法识别的表达式:不支持pseudo:invalid @ http:// localhost:8080 / assets / js / jquery-1.9.1.min.js:4 


$ ($(e.target).is(':invalid'))
$ b

{...}



我该如何解决这个问题?



例如: http://jsfiddle.net/L4g99/ - 尝试更改jQuery版本(在1.9之后停止工作)

解决方案使用 querySelectorAll 建议@JanDvorak(和他的回答应该被认为是可以接受的),你可以编写你自己的表达式,使得 .is(':invalid')有效吗?

  jQuery.extend(jQuery.expr [':'],{
无效:函数(元素,索引,匹配){
var invalids = document .querySelectorAll(':INV alid'),
result = false,
len = invalids.length;

if(len){
for(var i = 0; i< len; i ++){
if(elem === invalids [i]){
结果=真;
休息;
}
}
}
返回结果;
}
});

现在您可以这样做:

<$ p $ ($(e.target).is(':invalid')){...}

FIDDLE


I get the following console message:

[16:04:01.292] Error: Syntax error, unrecognized expression: unsupported pseudo: invalid @ http://localhost:8080/assets/js/jquery-1.9.1.min.js:4

When I try something like:

if( $(e.target).is(':invalid') ){ ... }

How do I fix this?

Here's an example: http://jsfiddle.net/L4g99/ - try changing the jQuery version (stops working after 1.9)

解决方案

Using querySelectorAll as suggested by @JanDvorak (and his answer should be accepted for thinking of that), you can write your own expression, making .is(':invalid') valid ?

jQuery.extend(jQuery.expr[':'], {
    invalid : function(elem, index, match){
        var invalids = document.querySelectorAll(':invalid'),
            result = false,
            len = invalids.length;

        if (len) {
            for (var i=0; i<len; i++) {
                if (elem === invalids[i]) {
                    result = true;
                    break;
                }
            }
        }
        return result;
    }
});

now you can do :

if( $(e.target).is(':invalid') ){ ... }

FIDDLE

这篇关于jQuery支持“:无效”选择的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆