2

请帮助我调整现有脚本以用 DOT 替换 COMMA。我使用一个脚本来限制插入字符到文本字段中。只有 1,2,3,4,5,6,7,8,9,0 和 "." 和“,”被接受插入。我想要两个插入 DOT 的按钮 - key==188(逗号)和 key==190(点)。

jQuery.fn.ForceNumericOnly =
    function()
    {
        return this.each(function()
        {
            $(this).keydown(function(e)
            {
                var key = e.charCode || e.keyCode || 0;
                return (
                    key == 8 || 
                    key == 9 ||
                    key == 46 ||
                    key == 110 ||
                    key == 188 ||   
                    key == 190 ||
                    (key >= 35 && key <= 40) ||
                    (key >= 48 && key <= 57) ||
                    (key >= 96 && key <= 105));

            });
        });
    };
$("#iMONEY").ForceNumericOnly();

可以在这里测试

4

4 回答 4

4

只需使用

if(e.keyCode == 188){
    e.preventDefault();
    $(this).val($(this).val() + '.');
}

给你。:)

供将来参考Mini-Tutorial

于 2013-10-20T07:54:38.480 回答
2

触发 keypress 事件,文本框的值会更新。这不是用点替换逗号的地方。改用 keyup 事件:

jQuery.fn.ForceNumericOnly =
    function()
    {
       this.keyup(function(e)
            {
//                console.log("Change");
                $(this).val($(this).val().replace(/,/g,"."));
            });
    };
$("#iMONEY").ForceNumericOnly();

演示

于 2013-10-20T08:07:40.890 回答
1
var key = e.charCode || e.keyCode || 0;
// 110 is numpad comma code
if (key === 188 && key === 110) {
    e.preventDefault();
    $(this).val($(this).val() + '.');                   
}
于 2013-10-20T07:57:42.090 回答
0

您需要使用 Replace 方法

var someVariable = "1,2,3,4,5,6,7,8,9,0";
$mylabel.text( someVariable.replace(',', '.') );

编辑: 如果您从 TextBox 进行检查,请执行以下操作:

if(Key == 188){
   var someVariable =  $("#TEXTBOXID").val();
    somVariable = someVariable.replace(',', '.');
}
于 2013-10-20T07:42:39.540 回答