1

我正在创建一个要添加字段验证的 Web 表单。当前方法涉及在输入标签中指定“模式”属性,如下所示:

 <input id="foo" class="span7" type="text" pattern="^[0-9]*\.?[0-9]*$">

但是,这种方法有意想不到的行为,正如我从 MDN 中读到的,并非所有主要浏览器都支持这种方法。这个功能有替代品吗?

需要明确的是,如果文本框的内容与指定的正则表达式不匹配,我想触发一种风格效果。我意识到这可以通过 Jquery 和添加/删除类来实现,但这感觉效率很低。

4

2 回答 2

1

真的没有有效的方法来做到这一点;您需要使用pattern或执行自己的事件侦听器,该侦听器在关键事件上运行自己的正则表达式。

于 2013-08-28T00:04:46.213 回答
0

尝试这个:

HTML:

<input id="foo" class="span7" type="text" onblur="checkInput(this.value,'^[0-9]*\.?[0-9]*$');">

JavaScript:

<script>
function checkInput(txt, pattern) {
  var re = new RegExp(pattern);
  var x = re.test( txt );
  //--- if x != true then show error message
}
</script>
于 2013-08-28T00:12:49.943 回答