在文本框中使用jQuery验证用户输入的按键操作

3

如何使用jQuery编写代码,以使用户无法在文本框中按下句点“.”键?

我可以像这样在JavaScript中编写代码,在每次按键时,浏览器检查是否按下了某个键,如果是点,则substring(0,len-1),但它会闪烁! 我想完全阻止按下该键!

3个回答

5

这应该可以工作。它还没有进行跨浏览器测试:

$("#theTextBox").keyup(function() {
    if($(this).val().indexOf('.') !== -1) {
        var newVal = $(this).val().replace('.', '');
        $(this).val(newVal);
    }
});

你可以在这里尝试。

编辑:我认为这个更好:

function doItPlease() {
    if ($(this).val().indexOf('.') !== -1) {
        var newVal = $(this).val().replace('.', '');
        $(this).val(newVal);
    }
}

$("#theTextBox").bind("keydown keyup", doItPlease);

试试这个更好的解决方案。

编辑(再次):我喜欢上面的解决方案,因为我很喜欢反馈方面的内容。话虽如此,我认为这才是你想要的:

$("#theTextBox").keyup(function(e) {
    if (e.which != 190) {
        return true;
    }
    e.preventDefault();
});

Try it here.


第一种解决方案会在按下“.”时中断。第二种解决方案如果你的猫恰巧按下它,那就是作弊。 - karim79
是的,这个更好了 :) ,但还有一段路要走。 - Sourav
@karim79,你能帮我解决这个问题吗?http://stackoverflow.com/questions/5498851/horizontal-tab-to-load-page-once - Sourav

3

控制+V事件中的字母数字键无法正常工作 :( - Sourav

1

使用优秀的http://bassistance.de/jquery-plugins/jquery-plugin-validation/表单验证插件。

您只需要将选项作为类名发出即可进行验证:

HTML

<input id="test" type="text" class="required email"/>

requiredemail 添加为类,将其验证为必需输入项,必须是电子邮件。在输入时进行验证。

jQuery

$('#test').validate()

这个插件的好处在于你可以直接从微软CDN访问js文件,因此不必从你的服务器加载它。http://ajax.aspnetcdn.com/ajax/jquery.validate/1.8/jquery.validate.js

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接