我正在尝试从keyup上的所有文本框中删除逗号。我想出了下面的脚本,但它没有用。谁能看到我做错了什么?
<script>
$("input[type='text']").keyup
(
function ()
{
alert('1');
$(this).val($(this).val().replace(/[,]/g, ""));
}
);
</script>
注意:请原谅$ in Script。所以不会让我发布它,否则......
答案 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;
});
});
这给人一种更专业的感觉,当你松开钥匙时,“,”被阻止而不会出现然后消失。但是,与您的解决方案一样,这不会捕获复制并将逗号粘贴到您的输入中。为此,您可以加入 onpaste 或 onchange 事件。
如果你想坚持使用keyup和replace,你真的不需要乱用jQuery包装,你可以直接访问 value 属性:
$(document.ready(function () {
$("input[type=text]").keyup(function (evt) {
this.value = this.value.replace(/,/g, "");
});
});
答案 2 :(得分:2)
答案 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>