使用Jquery验证输入
Validate input with Jquery
我正在尝试做下面这样的代码,但到目前为止还没有成功。
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57)) return false;
return true;
} // restrict numerical values only
上面的代码只允许使用数字字符,当用户按下除数字字符之外的任何其他键时,它都不会出现在文本框中。
这正是我想要的,但情况不同,我不希望用户输入零(0(作为他们的第一个字符。
例如0909错误,而不是909
到目前为止,我已经能够实现
$(".input-xlarge").keyup(function () {
var textInField = this.value;
if (textInField.length == 1) {
if (textInField == 0) {
showError('error?');
}
}
});
但是应该向用户显示一条消息,应该像第一个代码一样忽略输入。
看看fiddle,它"阻止"了文本框,只允许通过js进行有效输入。
HTML:
<input id='numeric' type='text'/>
JS:
$('#numeric').keydown(function(e){
if(e.keyCode == 8) // allow backspace - add more chars here
{
return;
}
else if(e.keyCode < 48 || e.keyCode > 57 || (e.keyCode == 48 && $(this).val() == '')) // non numeric + beginning zero
{
e.preventDefault();
}
});
Fiddle
这会起作用,
$(".input-xlarge").keyup(function (evt) {
var textInField = this.value;
if (textInField.length == 1) {
if (textInField == 0) {
alert('number should not start with zero');
$(evt.target).val("")
}
}
});
$( ".input-xlarge" ).keyup(function(e) {
var textInField = this.value;
if (textInField.length == 1){
if (this.value.length == 0 && e.which == 48 ){
alert('cannot start with zero')
return false;
}
}
});
请参阅此jsfiddle
试试这个代码:
$(".input-xlarge").keyup(function (event) {
var textInField = this.value;
if (textInField.substr(0, 1) == '0') {
event.preventDefault();
alert("should not start with zero');
}
});
通过这样做,每当用户输入0
作为第一个字母时,它就不会显示,并且会发出错误消息。
相关文章:
- 是否有一种方法可以使用公共代码库在Java和JavaScript中进行输入验证
- 输入验证&使用javascript或asp返回
- 带有输入验证的Javascript
- 表单和输入验证
- 输入验证仅在lur上
- 使用jQuery进行输入验证
- 如何在 JavaScript 中将输入验证为数字
- 使用正则表达式进行输入验证
- Int 输入验证 - 解析服务器云代码
- jQuery/JS 输入验证
- 使用 Angular 要求输入启用注册:需要输入/验证
- 比较输入验证HTML JavaScript中的两个输入值
- simpleCart(js)将表单输入验证添加到电子邮件结账提交中
- Javascript:输入验证
- 淘汰计算和输入验证
- 使用javascript addevent监听器在引导程序html表单上输入验证
- 使用JavaScript进行输入验证
- HTML 5表单输入验证
- 禁用输入类型=数字的输入验证
- AngularJs表单中的输入验证