现在我有一个像这样的输入字段:
<input class="form-control" type="text"/>
但它仍然可以输入数字。
我希望输入名称,并希望在字符串包含数字时显示错误消息。我怎样才能做到这一点?
答案 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
...
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;
如果它只是普通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验证(只是字母)
可以更好地控制验证好坏时会发生什么。只有提醒或更改颜色等。