Экспортирование значения раскрывающегося списка

Статус
Закрыто для дальнейших ответов.

kuryin

Участник
Топикстартер
Сообщения
11
Реакции
0
Добрый день! Делаю форму, в которой формируется артикул изделия, исходя из выбранных свойств в раскрывающихся списках. Артикул формируется скриптом по нажатию кнопки, один из раскрывающихся списков (spr) имеет следующие значения на экспорт:
00
04
06
08
10
12
При срабатывании скрипта:
function ART(){
var fld1 = this.getField("ART");
var fld2 = this.getField("typ");
var fld3 = this.getField("spr");
var fld4 = this.getField("fln");
var fld5 = this.getField("val");
var fld6 = this.getField("vvv");
var fld7 = this.getField("mat");
fld1.value = fld2.value + fld3.value + fld4.value + fld5.value + fld6.value + fld7.value;
}
ART();
При выборе из списка значения 10 и 12 в форму ART нормально вставляются эти цифры, а при выборе 00, 04, 06, 08 в форму вставляются 0, 4, 6, 8 (без первого ноля). Помогите решить проблему, нужно чтобы вставлялось именно как строка 00, 04, 06, 08.
Заранее спасибо.
 

splxgf

12 лет на форуме
Сообщения
7 742
Реакции
3 424
Ну это зависит от личных предпочтений, если формат фиксированный в две цифры, то нарисовал бы функцию которая дополняет нулем.
Либо перед помещением в fld3 явно приводил к строке.
 

kuryin

Участник
Топикстартер
Сообщения
11
Реакции
0
C JS только начал знакомиться. Пытался проверить длину переменной и подставлять "0" сложением строк, если она равна 1 - не получилось. Дело не в том нравится или нет. Результат должен иметь определенное количество символов, в когда пропадает "0" кол-во символов уменьшается. Каким образом можно привести к строке fld3? Не удалось найти как задать тип переменной, алертом выводил тип - object.
 

kuryin

Участник
Топикстартер
Сообщения
11
Реакции
0
Проверял так:
if (fld3.value.length = 1) {
fld3.value = "0" + fld3.value;
}
 

splxgf

12 лет на форуме
Сообщения
7 742
Реакции
3 424
Что-то мне подсказывает что возвращается индекс, а не значение.
Код вроде должен отрабатывать нормально, но я бы сразу запрашивал значение var fld3 = this.getField("spr").value;
 
  • Спасибо
Реакции: kuryin

kuryin

Участник
Топикстартер
Сообщения
11
Реакции
0
Что-то мне подсказывает что возвращается индекс, а не значение.
Код вроде должен отрабатывать нормально, но я бы сразу запрашивал значение var fld3 = this.getField("spr").value;
Огромное спасибо! Помогло!

var fld3 = this.getField("spr").value;
if (fld3.length = 1) {
fld3 = "0" + fld3;
}
 

kuryin

Участник
Топикстартер
Сообщения
11
Реакции
0
Теперь другая проблема. Указанный выше код не определяет длину строки (app.alert(fld03.length); выводит "undefined") и прибавляет "0" ко всем значениям переменной.
 

kuryin

Участник
Топикстартер
Сообщения
11
Реакции
0
А this.getField("spr").length всегда выдает 1
 

splxgf

12 лет на форуме
Сообщения
7 742
Реакции
3 424
Попробуем метод телепатического тыка
Код:
var fld3 = this.getField("spr").value;
if (fld3 < 10) {
fld3 = "0" + fld3;
}
.length - это вам не строки.
 
  • Спасибо
Реакции: kuryin

kuryin

Участник
Топикстартер
Сообщения
11
Реакции
0
Точно! Думал про <10 , но зациклился на .length :)
Спасибо еще раз!
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 188
Реакции
10 844
Для ценителей
((this.getField("spr").value+100)+"").substr(1,2)
 
  • Спасибо
Реакции: kuryin
Статус
Закрыто для дальнейших ответов.