为什么这个jQuery HTML5后备不起作用?

时间:2011-12-03 22:54:47

标签: javascript jquery html html5

  $('form').find('input[pattern],textarea[pattern]').each(function(){
    if(!$(this).val().match($(this).prop('pattern'))){
      $(this).addClass('error');
    }
  });


<textarea name=... required pattern=^.{10,255}$></textarea>

基本上,如果值与模式不匹配,则会添加类(错误)。但是,即使我只输入1-9个字符,该类也不会被添加到textarea中。

1 个答案:

答案 0 :(得分:1)

在HTML5中,模式可能被解释为正则表达式,但在这里它只是一个字符串。你需要制作一个正则表达式。

new RegExp($(this).attr('pattern'))

此外,您可能希望在属性周围添加一些引号:

pattern="^.{10,255}"