当按下wil ++或 - 值,数字键盘

时间:2013-09-18 11:58:18

标签: javascript jquery numeric-keypad

使用数字小键盘我添加了一个.switch处理程序,单击该处理程序会将值恢复为“0”(仅限测试用途)

如果值为+32且按下按钮,我希望它更改为-32,反之亦然。

到目前为止,我只是让它回到0,我在想再删除或添加val,甚至尝试过 - $('#myInput').val());

$('.switch').click(function () {
    if (!isNaN($('#myInput').val()) && $('#myInput').val().length > 0) {
        $('#myInput').val(parseInt($('#myInput').val()) - $('#myInput').val());
    }
    if (!isNaN($('#myInput').val()) && $('#myInput').val().length < 0) {
        $('#myInput').val(parseInt($('#myInput').val()) + $('#myInput').val());
    }
});

2 个答案:

答案 0 :(得分:3)

如果您要做的只是在正数/负数之间来回切换,则可以使代码更简单并失去所有if条件:

$('.switch').click(function () {
    var $input = $('#myInput');
    $input.val() != "" && !isNaN($input.val()) && $input.val(-$input.val());
});

这相当于将数字乘以-1,这将产生相同的效果。

Example fiddle

答案 1 :(得分:2)

$('#myInput').val().length < 0 什么时候字符串的长度小于零?

parseInt($('#myInput').val()) + $('#myInput').val() 这实际上不会进行数字加法,如果该值是字符串1,那么它就像执行1+"1"将返回11

我认为您正在寻找的是:

$('.switch').click(function () {
            var val = parseInt($('#myInput').val());
            $('#myInput').val(-val);
    });

请参阅here