При нажатии wil ++ или - значение, цифровая клавиатура

Используя цифровую клавиатуру, я добавил обработчик.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 ответа

Решение

Если все, что вы пытаетесь сделать, это переключаться между положительным / отрицательным числом, вы можете сделать свой код намного проще и потерять все if условия:

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

Это эквивалент умножения числа на -1, который будет иметь тот же эффект.

Пример скрипки

$('#myInput').val().length < 0когда длина строки будет меньше нуля?

parseInt($('#myInput').val()) + $('#myInput').val()это фактически не делает числовое сложение, если th-е значение является строкой 1 тогда это будет как делать 1+"1" который вернется 11

Я думаю, что вы ищете это:

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

смотрите здесь

Другие вопросы по тегам