如何在JQuery中用另一个替换按键?

时间:2013-09-13 07:19:45

标签: jquery ruby-on-rails

在我的本地化rails应用中,默认小数点是逗号(,)而不是点(。)

代表。 1.000.000,56

当我的用户输入数值时,出于速度原因,他们更喜欢使用键盘的数字键盘。然而,数字键盘具有DOT而不是COMMA,因此整个过程受到阻碍。

所以我的问题是:

当用户点击数字键盘中的点时,有没有办法以编程方式在文本输入中输入逗号?

提前致谢

3 个答案:

答案 0 :(得分:1)

您可以在输入此值的控件上执行类似的操作

$('#searchbox input').bind('keypress', function(e) {
    if(e.keyCode==13){//here in your case it would be keycode of '.'
        // Enter pressed... do anything here...
    }
});

您可以使用此链接查找所需的密钥代码http://www.theasciicode.com.ar/ascii-printable-characters/dot-full-stop-ascii-code-46.html

答案 1 :(得分:1)

我建议使用jQuery e.which方法来获取正确的密钥代码,并避免混乱导致识别按键事件的不同方法。

var charCode = (typeof e.which == "number") ? e.which : e.keyCode

这是在输入时将点转换为昏迷的代码:

$('input').keypress(function(e){    
    if (e.which == '13') {                
        $('input').val(function(index, value) {
           return value.replace('.', ',');
        });           
    }
});

答案 2 :(得分:1)

与上面的答案类似,但是使用keydown可以阻止默认,这将阻止它首先输入值。然后由你如何追加逗号:

$('input').on('keydown', function(e){
    if(e.which === 110){ //check for numpad '.'
        e.preventDefault(); //stop the event entering text

        var $inputValue = $(this).val();

        $(this).val($inputValue + ','); //add your append logic to add comma
    }
});