Jon*_*nas 8 html javascript forms jquery focus
我有一个文本字段<input type="text"/>,我想在焦点丢失时验证.如果输入无效,我想阻止焦点移动到下一个元素,或者换句话说,将焦点保持在无效输入,直到它有效.
我怎么能用jQuery和JavaScript做到这一点?
我已尝试使用此代码,但它不起作用(jsFiddle):
<!DOCTYPE html>
<html>
<head>
<script src="jquery-1.6.2.min.js"></script>
<script>
$(function() {
$('.hello').bind('focusout', function(e) {
if(!isValid($(this).val())) {
e.preventDefault();
$(this).foucus();
}
});
});
function isValid(str) {
if(str === "hello") {
return true;
} else {
return false;
}
}
</script>
</head>
<body>
Only valid content: <b>hello</b><br>
<input type="text" class="hello"/>
<button>Dummy</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
Fis*_*rdo 10
这只是一个错字.更改:
$(this).foucus();
Run Code Online (Sandbox Code Playgroud)
至:
$(this).focus();
Run Code Online (Sandbox Code Playgroud)
此外,您可能希望通过调用select文本框让用户更轻松地纠正错误.这样,他们可以再次开始输入以更改值:
$(this).focus().select();
Run Code Online (Sandbox Code Playgroud)
这是一个有效的例子.
注意:这个答案解决了手头的问题,即问题.在更广泛的范围内,我同意其他人说不应该将用户锁定在一个字段中.更好的方法是在提交时验证整个表单,让用户看到所有问题并立即修复它们,而不是在整个过程中窃听它们.
| 归档时间: |
|
| 查看次数: |
27296 次 |
| 最近记录: |