Установите Text / Val, не появляющийся в текстовом вводе, пока не нажмете / focus (jQuery) - PullRequest
1 голос
/ 07 октября 2011

У меня есть флажок, который обновляет итоги на странице в зависимости от того, установлен он или нет.В одной части моей формы я хотел бы обнулить Telerik Numeric TextBox (поле ввода текста), если пользователь решит, что ему не нужна эта категория.

When unchecked, the textbox on the right should be set to zero.

КогдаЕсли флажок выше снят, значение в текстовом поле справа должно измениться на ноль.Для этого я написал код jQuery ниже (обратите внимание, эта функция вызывается всякий раз, когда что-то меняется в форме):

var zeroValue = getNum(0.00);

//Scaffolding
    if ($("#ScaffoldingRequired").attr('checked')) {
        scaffoldingCost = getNum($("#ScaffoldingCost").val());
        totalCost += scaffoldingCost;
    } else {
        $("#ScaffoldingCost").val(zeroValue);
        $("#ScaffoldingCost").text(zeroValue);
    }
//Round&Convert to 'decimal'
function getNum(num) {
        var number = parseFloat(num) || 0.00;
        var rNumber = Math.round(number * 100) / 100;
        return rNumber.toFixed(2) * 1;
    }

ПРИМЕЧАНИЕ: чтобы убедиться, что все округляется правильно и не дает мнеNaN, я использовал свою функцию getNum (я понимаю, что это немного взломать).

Этот код работает, и все мои итоги вычисляются правильно , но текстовое поле не отображает нулевое значение, пока пользователь на самом деленажимает на поле ввода .Я отобразил это ниже:

Displays Zero once the input box is clicked.

Есть ли что-то, что я могу сделать, чтобы перезапустить мое поле ввода, чтобы оно немедленно отображало нулевое значение?Или я неправильно устанавливаю значение / текст?

1 Ответ

2 голосов
/ 08 октября 2011

Вы говорите, что используете Telerik, рассматривали ли вы возможность использования их клиентского API для изменения значения текстового поля?

var textBox = $('#ScaffoldingCost').data('tTextBox');
textBox.value(0);
...