使用jQuery替换字符

时间:2010-09-07 18:15:46

标签: jquery

我正在尝试从keyup上的所有文本框中删除逗号。我想出了下面的脚本,但它没有用。谁能看到我做错了什么?

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

注意:请原谅$ in Script。所以不会让我发布它,否则......

5 个答案:

答案 0 :(得分:13)

您可能希望将整个代码块包装在文档就绪函数

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

您可以在jQuery documentation site上阅读所有相关内容。

答案 1 :(得分:6)

正如其他人所说,请确保您使用的是$(文件).ready() - http://api.jquery.com/ready/。此外,您应该通过返回false来禁止在keypress上禁用它们,而不是替换keyup上的逗号:

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

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

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

如果你想坚持使用keyup和replace,你真的不需要乱用jQuery包装,你可以直接访问 value 属性:

$(document.ready(function () { 
    $("input[type=text]").keyup(function (evt) {
        this.value = this.value.replace(/,/g, "");
    });
});

答案 2 :(得分:2)

这对我有用:http://jsfiddle.net/vsnrc/1/

答案 3 :(得分:1)

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

如果您的输入位于更新面板中,或者在绑定发生后添加,则应该可以使用。

答案 4 :(得分:0)

试试这个

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