HTML输入不允​​许使用数字

时间:2015-04-23 12:32:53

标签: html5 input

现在我有一个像这样的输入字段:

<input class="form-control" type="text"/>

但它仍然可以输入数字。

我希望输入名称,并希望在字符串包含数字时显示错误消息。我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:6)

您可以使用原生HTML5 field validation

就像电子邮件验证(fiddle): <input type="text" title="email" pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}" />

针对您的具体情况,您可以使用pattern="[a-zA-Z]*"fiddle)等正则表达式

当您提交表单时,它会以红色边框突出显示,以显示验证错误。在不同的浏览器中,它会表现略有不同。

我认为没有标准方法可以覆盖每个默认样式,但是有一些特定于浏览器的方法(here)。

对于某些样式,您可以使用css挂钩进行更改see here

编辑:更新小提琴。

答案 1 :(得分:4)

这应该可以帮助您只键入字符:

$(function() {

  $('#txtNumeric').keydown(function (e) {
  
    if (e.shiftKey || e.ctrlKey || e.altKey) {
    
      e.preventDefault();
      
    } else {
    
      var key = e.keyCode;
      
      if (!((key == 8) || (key == 32) || (key == 46) || (key >= 35 && key <= 40) || (key >= 65 && key <= 90))) {
      
        e.preventDefault();
        
      }

    }
    
  });
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <b>Enter Text:</b>
  <input type="text" id="txtNumeric" />
</div>

答案 2 :(得分:1)

你有几种选择......

无论选项如何,您都将以某种形式使用正则表达式。

您可以使用JavaScript ...

在客户端进行此操作

&#13;
&#13;
function Validate () {

  var inputValue = document.getElementById("test").value;
  var reg = new RegExp('^\\d+$');
  var test = reg.test(inputValue);
  
  //--Do something with test--
  console.log(test);
  
}
&#13;
<input id="test" class="form-control" type="text" />
<button onClick="Validate()">Validate</button>
&#13;
&#13;
&#13;

如果它只是普通HTML而没有服务器端代码,则需要使用JavaScript

修改

据我所知,支持JavaScript的所有浏览器均支持此版本。

答案 3 :(得分:0)

没有输入只有文字:

http://www.w3schools.com/html/html_form_input_types.asp

...你可以像输入onkeydown

那样尝试js +动作

http://www.w3schools.com/jsref/event_onkeydown.asp

并通过regEx验证(只是字母)

Regex to match only letters

可以更好地控制验证好坏时会发生什么。只有提醒或更改颜色等。