1

使用数字键盘,我添加了一个 .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());
    }
});
4

2 回答 2

3

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

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

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

示例小提琴

于 2013-09-18T12:14:28.667 回答
2

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

parseInt($('#myInput').val()) + $('#myInput').val() 这实际上并没有进行数字加法,如果 th 值是字符串,1那么它就像做1+"1"which 会返回11

我认为您正在寻找的是:

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

这里

于 2013-09-18T12:11:50.100 回答