久しぶりにjQuery触っていたら、isメソッドに:invalid擬似クラスを指定したところでSyntax Errorになった。
自家製CSS Selectorだし、いずれ先のバージョンで対応されるんだろうけど、取り急ぎ使えないと不便だったのでjQueryオブジェクトを拡張。
$.extend($.expr[':'], {
invalid: function(e, inx, match){
var invalids = document.querySelectorAll(':invalid');
var result = false;
for(var i=0; i<invalids.length; i++){
if(e === invalids[i]){
result = true;
break;
};
};
return result;
}
});
これで、自然に使えるようになる。はず。
if($(this).is(':invalid')){
alert('Validation Error!');
};