代码之家  ›  专栏  ›  技术社区  ›  Abe Miessler

使用jQuery替换字符

  •  4
  • Abe Miessler  · 技术社区  · 14 年前

    我正在尝试删除keyup上所有文本框中的逗号。我想出了下面的脚本,但它不工作。有人能看出我做错了什么吗?

    <script>
        $("input[type='text']").keyup
        (
            function () 
            {
                alert('1');
                $(this).val($(this).val().replace(/[,]/g, ""));
            }
        );
    </script>
    

    5 回复  |  直到 14 年前
        1
  •  14
  •   jessegavin    14 年前

    $(function() {
      $("input:text").keyup(function() {
            $(this).val($(this).val().replace(/[,]/g, ""));
      });
    });
    

    你可以在网上看到这一切 jQuery documentation site

        2
  •  6
  •   Andy E    14 年前

    正如其他人提到的,请确保使用$(document).ready()- http://api.jquery.com/ready/

    $(document.ready(function () { 
        $("input[type=text]").keypress(function (evt) {
            if (String.fromCharCode(evt.which) == ",")
                return false;
        });
    });
    

    例子: http://jsfiddle.net/QshDd/

    这给人一种更专业的感觉,当你松开钥匙时,“,”会被阻止而不出现然后消失。但是,与您的解决方案一样,这不会捕获复制和粘贴逗号到您的输入中。为此,你可以加入 onchange公司

    如果您想坚持使用keyup和replace,那么实际上不需要使用jQuery包装,您可以访问 价值

    $(document.ready(function () { 
        $("input[type=text]").keyup(function (evt) {
            this.value = this.value.replace(/,/g, "");
        });
    });
    
        3
  •  3
  •   aularon    14 年前
        4
  •  1
  •   bevacqua    14 年前
    <script>
        $(document).ready(function()
        {
            $("input[type='text']").live('keyup',function () 
            {
                alert('1');
                $(this).val($(this).val().replace(/[,]/g, ""));
            });
        });
    </script>
    

    如果您的输入在更新面板中,或者是在绑定发生后添加的,那么这应该可以工作。

        5
  •  0
  •   Maulik Vora    14 年前

    试试这个

    <script>
            $("input[type='text']").keyup
            (
                function () 
                {
                    alert('1');
                    $(this).val($(this).val().replace(',', ""));
                }
            );
        </script>