Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.04.2020, 04:49
Аспирант
Отправить личное сообщение для Юсуф Посмотреть профиль Найти все сообщения от Юсуф
 
Регистрация: 09.03.2012
Сообщений: 84

немогу передать значение из функции в функцию js
Доброе утро! Прошу не судить строго и помочь небольшим примером.
Есть код js который размножает строки в таблице


<div class="rows">
       <table id="SmetaTable">
           <thead><tr><td>№</td><td>Наименование</td><td>Ед. изм.</td><td>Объем</td><td>Мат-ал</td><td>СМР</td><td>Всего</td</</thead>
           <tbody id="form"> </tbody>
             
             <tr>
                 <td colspan="7">
                        <button type="button" id="dobavit">Новая строка</button>
                        <button type="button" id="dobavit2">Новый раздел</button>
                 </td>
             </tr>
       </table>
        
  </div>


И js код

var $btn = $('#dobavit'); // кнопка создание подраздела (строки)
     var $btns = $('#dobavit2'); //Кнопка для создание раздела
     var $nums =  2;
     var $numsStroca =1;

       $btns.click(function (ResutNms) { // Функция создает раздел с input внутри
             var $ResutNms = $nums++;
                $('#form').append("<tr><td colspan='7'><input id='Razdel' type='' value='"+$ResutNms+".'/></td></tr>");
         });
      
       $btn.click(function () {  // Функция создает строку
         var $NumPodstr = numsStroca++;
         var $result = ResutNms+'.'+NumPodstr ; // Должно получиться 1.1, 1.2. и т.п.

          $('#form').append("<tr><td>"+result+"</td><td id='SmetaTableName'><input type='text'  /></td><td id='SmetaTableSelec'><select><option></option></select></td><td id='SmetaTableObem'><input type='text' value='' /></td><td id='SmetaTableMat'><input type='text' value='' /></td><td id='SmetaTableSMR'><input type='text' value='' /></td><td id='SmetaTableItog'><input type='text' value='' /></td></tr>");

         });




Так вот все нормально работает но мне нужно сделать нумерацию. то есть при каждом добавление раздела должно быть номер подраздела. нумерация раздела у меня получается, а вот никак не могу провести нумерацию подраздел.
Результат должен получиться такой:
1. Раздел
1.1. Строка
1.2. Строка
1.3. Строка
2. Раздел
2.1. Строка
2.2. Строка
...
Ответить с цитированием
  #2 (permalink)  
Старый 24.04.2020, 07:24
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 1,305

У вас в строке 13 используется не описанная переменная ResutNms. То, что она описана в строке 7 не считается. Это другая функция и от туда не видна. Надо перенести описание этой переменной на уровень выше

var $btn = $('#dobavit'); // кнопка создание подраздела (строки)
     var $btns = $('#dobavit2'); //Кнопка для создание раздела
     var $nums =  2;
     var $numsStroca =1;
     var $NumPodstr;
 
       $btns.click(function (ResutNms) { // Функция создает раздел с input внутри
             $ResutNms = $nums++;
                $('#form').append("<tr><td colspan='7'><input id='Razdel' type='' value='"+$ResutNms+".'/></td></tr>");
         });
       
       $btn.click(function () {  // Функция создает строку
         var $NumPodstr = numsStroca++;
         var $result = ResutNms+'.'+NumPodstr ; // Должно получиться 1.1, 1.2. и т.п.
 
          $('#form').append("<tr><td>"+result+"</td><td id='SmetaTableName'><input type='text'  /></td><td id='SmetaTableSelec'><select><option></option></select></td><td id='SmetaTableObem'><input type='text' value='' /></td><td id='SmetaTableMat'><input type='text' value='' /></td><td id='SmetaTableSMR'><input type='text' value='' /></td><td id='SmetaTableItog'><input type='text' value='' /></td></tr>");
 
         });
Ответить с цитированием
  #3 (permalink)  
Старый 24.04.2020, 08:01
Аспирант
Отправить личное сообщение для Юсуф Посмотреть профиль Найти все сообщения от Юсуф
 
Регистрация: 09.03.2012
Сообщений: 84

Сообщение от voraa Посмотреть сообщение
У вас в строке 13 используется не описанная переменная ResutNms. То, что она описана в строке 7 не считается. Это другая функция и от туда не видна. Надо перенести описание этой переменной на уровень выше

var $btn = $('#dobavit'); // кнопка создание подраздела (строки)
     var $btns = $('#dobavit2'); //Кнопка для создание раздела
     var $nums =  2;
     var $numsStroca =1;
     var $NumPodstr;
 
       $btns.click(function (ResutNms) { // Функция создает раздел с input внутри
             $ResutNms = $nums++;
                $('#form').append("<tr><td colspan='7'><input id='Razdel' type='' value='"+$ResutNms+".'/></td></tr>");
         });
       
       $btn.click(function () {  // Функция создает строку
         var $NumPodstr = numsStroca++;
         var $result = ResutNms+'.'+NumPodstr ; // Должно получиться 1.1, 1.2. и т.п.
 
          $('#form').append("<tr><td>"+result+"</td><td id='SmetaTableName'><input type='text'  /></td><td id='SmetaTableSelec'><select><option></option></select></td><td id='SmetaTableObem'><input type='text' value='' /></td><td id='SmetaTableMat'><input type='text' value='' /></td><td id='SmetaTableSMR'><input type='text' value='' /></td><td id='SmetaTableItog'><input type='text' value='' /></td></tr>");
 
         });
Я так пробывал, но у меня перестает работать весь скрипт. не создает строку... Скопирова как у Вас тоже самое
Ответить с цитированием
  #4 (permalink)  
Старый 24.04.2020, 08:24
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 1,305

Блин, ну ошибся я
В тексте пишу про одно, а в коде сделал другое.
Написал про $ResutNms (правильно), а вынес другую переменную

var $btn = $('#dobavit'); // кнопка создание подраздела (строки)
     var $btns = $('#dobavit2'); //Кнопка для создание раздела
     var $nums =  2;
     var $numsStroca =1;
     var $ResutNms;
  
       $btns.click(function (ResutNms) { // Функция создает раздел с input внутри
             $ResutNms = $nums++;
                $('#form').append("<tr><td colspan='7'><input id='Razdel' type='' value='"+$ResutNms+".'/></td></tr>");
         });
        
       $btn.click(function () {  // Функция создает строку
         var $NumPodstr = numsStroca++;
         var $result = ResutNms+'.'+NumPodstr ; // Должно получиться 1.1, 1.2. и т.п.
  
          $('#form').append("<tr><td>"+result+"</td><td id='SmetaTableName'><input type='text'  /></td><td id='SmetaTableSelec'><select><option></option></select></td><td id='SmetaTableObem'><input type='text' value='' /></td><td id='SmetaTableMat'><input type='text' value='' /></td><td id='SmetaTableSMR'><input type='text' value='' /></td><td id='SmetaTableItog'><input type='text' value='' /></td></tr>");
  
         });
Ответить с цитированием
  #5 (permalink)  
Старый 24.04.2020, 09:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Юсуф
Должно получиться 1.1, 1.2. и т.п.
Они у вас ни к чему не привязаны?
Ответить с цитированием
  #6 (permalink)  
Старый 24.04.2020, 12:46
Аспирант
Отправить личное сообщение для Юсуф Посмотреть профиль Найти все сообщения от Юсуф
 
Регистрация: 09.03.2012
Сообщений: 84

Сообщение от voraa Посмотреть сообщение
Блин, ну ошибся я
В тексте пишу про одно, а в коде сделал другое.
Написал про $ResutNms (правильно), а вынес другую переменную

var $btn = $('#dobavit'); // кнопка создание подраздела (строки)
     var $btns = $('#dobavit2'); //Кнопка для создание раздела
     var $nums =  2;
     var $numsStroca =1;
     var $ResutNms;
  
       $btns.click(function (ResutNms) { // Функция создает раздел с input внутри
             $ResutNms = $nums++;
                $('#form').append("<tr><td colspan='7'><input id='Razdel' type='' value='"+$ResutNms+".'/></td></tr>");
         });
        
       $btn.click(function () {  // Функция создает строку
         var $NumPodstr = numsStroca++;
         var $result = ResutNms+'.'+NumPodstr ; // Должно получиться 1.1, 1.2. и т.п.
  
          $('#form').append("<tr><td>"+result+"</td><td id='SmetaTableName'><input type='text'  /></td><td id='SmetaTableSelec'><select><option></option></select></td><td id='SmetaTableObem'><input type='text' value='' /></td><td id='SmetaTableMat'><input type='text' value='' /></td><td id='SmetaTableSMR'><input type='text' value='' /></td><td id='SmetaTableItog'><input type='text' value='' /></td></tr>");
  
         });
Извините меня конечно, но эффект тот же самый... Весь скрипт перестает работать...
Ответить с цитированием
  #7 (permalink)  
Старый 24.04.2020, 12:58
Аспирант
Отправить личное сообщение для Юсуф Посмотреть профиль Найти все сообщения от Юсуф
 
Регистрация: 09.03.2012
Сообщений: 84

Если проверить обычный методом передаваемое $ResutNms в alert($ResutNms); то выдает undefined. Получается программа не видит цифру в переменной $ResutNms во второй функции?

Последний раз редактировалось Юсуф, 24.04.2020 в 13:00.
Ответить с цитированием
  #8 (permalink)  
Старый 24.04.2020, 13:15
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 1,305

Всей еруды в чужом коде сразу заметить трудно
Зачем
$btns.click(function (ResutNms) {
Кто его туда передает?
Зачем переменные $ResutNms и ResutNms, $NumPodstr и NumPodstr?

var $btn = $('#dobavit'); // кнопка создание подраздела (строки)
     var $btns = $('#dobavit2'); //Кнопка для создание раздела
     var nums =  2;
     var numsStroca =1;
     var ResutNms ;
   
       $btns.click(function () { // Функция создает раздел с input внутри
             ResutNms = nums++;
             numsStroca =1;
                $('#form').append("<tr><td colspan='7'><input id='Razdel' type='' value='"+ResutNms+".'/></td></tr>");
         });
         
       $btn.click(function () {  // Функция создает строку
         var NumPodstr = numsStroca++;
         var result = ResutNms+'.'+NumPodstr ; // Должно получиться 1.1, 1.2. и т.п.
   
          $('#form').append("<tr><td>"+result+"</td><td id='SmetaTableName'><input type='text'  /></td><td id='SmetaTableSelec'><select><option></option></select></td><td id='SmetaTableObem'><input type='text' value='' /></td><td id='SmetaTableMat'><input type='text' value='' /></td><td id='SmetaTableSMR'><input type='text' value='' /></td><td id='SmetaTableItog'><input type='text' value='' /></td></tr>");
   
         });
Ответить с цитированием
  #9 (permalink)  
Старый 24.04.2020, 13:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Юсуф,
что это такое в итоге - статический документ или это хранимые данные? Если хранимые данные то как хранятся?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передать в контактную форму значение <button> artem99357 Общие вопросы Javascript 6 30.12.2019 15:02
Как передать входной параметр в функции JS Kimor AJAX и COMET 0 16.10.2018 15:47
Как передать значение в функцию в переменную с нужным именем? bratkovsky Общие вопросы Javascript 1 12.10.2015 08:18
как передать в функцию значение inputa imediasun1 Элементы интерфейса 3 24.04.2014 19:59
Выводить значение раньше переменных Гробовщик Общие вопросы Javascript 11 10.09.2013 07:42