【问题标题】:validate user input on keypress on textbox jQuery在文本框jQuery上的按键上验证用户输入
【发布时间】:2011-04-01 04:32:57
【问题描述】:

如何在 jQuery 中编写代码,这样用户就不能按点“。”输入文本框?

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

【问题讨论】:

    标签: jquery jquery-validate


    【解决方案1】:

    这应该可以。它尚未经过跨浏览器测试:

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

    You can try it here.

    编辑:我认为这更好:

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

    Try the less sucky solution here.

    编辑(再次):我赞成上述解决方案,因为我非常喜欢反馈方面。也就是说,我认为这就是你所追求的:

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

    Try it here.

    【讨论】:

    • 如果你按住'.',第一个解决方案就会中断。如果他/她碰巧按下它,第二种解决方案会欺骗你的猫。
    • 是的,这个更好:),但还有一点路要走
    • @karim79 你能帮我吗? stackoverflow.com/questions/5498851/…
    【解决方案2】:

    查看此插件以防止输入特定字符:http://www.itgroup.com.ph/alphanumeric/

    还可以查看用于一般验证的验证插件:http://bassistance.de/jquery-plugins/jquery-plugin-validation/

    【讨论】:

    • Control+V 事件上的字母数字中断 :(
    【解决方案3】:

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

    您需要做的就是验证选项作为类名:

    HTML

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

    requiredemail 添加为一个类将验证它是否为必须是电子邮件的必需输入。验证在您键入时完成。

    jQuery

    $('#test').validate()
    

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

    【讨论】:

      猜你喜欢
      • 2016-03-13
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-21
      • 2019-01-24
      • 1970-01-01
      相关资源
      最近更新 更多