2014-02-07 5 views
0

Я пишу сценарий для использования в качестве пользовательского интерфейса для моих членов поля для ввода численных значений необходимого им оборудования.Хотите суммировать несколько текстовых полей в одном текстовом поле

У меня есть три текстовых поля, в которых они вводят количество предметов, в которых они нуждаются. Я также хочу создать общее количество элементов в этом пользовательском интерфейсе, чтобы члены поля могли видеть, сколько элементов они заказывают. Однако я не могу понять, как взять значение трех текстовых полей и получить сумму, которая входит в поле итогов. Все, что я получаю, это либо «неопределенный», либо «общий» в поле итогов.

Вот код:

function review(e) { 
    var app = UiApp.getActiveApplication(); 

var packageABox = app.createTextBox().setId('packageABox').setStyleAttribute("textAlign", "center"); 
    grid.setWidget(3, 3, packageABox); 

var packageBBox = app.createTextBox().setId('packageBBox').setStyleAttribute("textAlign", "center"); 
    grid.setWidget(4, 3, packageBBox); 

var packageCBox = app.createTextBox().setId('packageCBox').setStyleAttribute("textAlign", "center"); 
    grid.setWidget(5, 3, packageABox); 


var packageTotalBox = app.createTextBox().setId('packageTotalBox').setStyleAttribute("textAlign", "center"); 
    grid.setWidget(7, 3, packageTotalBox); 

return app; 
} 

Я не уверен, куда идти отсюда ... любые намеки, чтобы получить packageABox, packageBBox и packageCBox просуммировать в packageTotalBox ???

Спасибо!

+0

пожалуйста показать код, который создает texBoxes, нам нужно знать, если Textboxes имеют имена, из которых их ценность может быть восстановлена ​​... –

+0

Извините! Я назвал коробки: .setName ('packageABox') .setName ('packageBBox') .setName ('packageCBox') .setName ('packageTotalBox') – mrmeyer725

+0

Кроме того, в чем разница между установка идентификатора и установка имени? Нужно ли устанавливать их оба? – mrmeyer725

ответ

0

В функции обработчика вы можете получить значения textBow, добавить их и присвоить результат виджету результата. Обработчик также должен иметь элемент calBackElement, который включает в себя 3 текстовых поля.

Код может выглядеть так:

function showTotal(e){ 
var app = UiApp.getActiveApplication(); 
var packageABox = Number(e.parameter.packageABox); 
var packageBBox = Number(e.parameter.packageBBox); 
var packageCBox = Number(e.parameter.packageCBox); 
var total = packageABox+packageBBox+packageCBox; 
app.getElementById('packageTotalBox').setText(total);// here use the ID of the textBow showing total 
return app; 
} 

Если Textboxes содержит ничего, кроме чисел Используйте Regex держать только цифры. , например, это будет уничтожить любое нерастворимое значение цифр и возвращает число в каждом случае (за исключением, если не определено)

var x = e.parameter.packageBBox;// for example '45 MPH' 
var xAsNumber = Number(x.replace(/\D/g ,'')) ;// delete everything that is not a digit, 45.0 in this example 
+0

Это похоже на работу очень хорошо! Я добавил еще несколько этих сумм, и теперь я обнаружил, что некоторые из них выходят как «NaN» в общей коробке? Знаете ли вы, что это значит? Благодаря! – mrmeyer725

+0

NaN для не числа ... есть ли письмо или слово вместе с вами? –

+0

см. Обновление в ответе. –

Смежные вопросы