WedX - журнал о программировании и компьютерных науках

Ошибка суммирования общих входных данных, созданных пользователем

Я пытаюсь создать функцию в Jquery, которая позволяет мне добавить значение 3 ввода (содержащее данные, выраженные во времени) к 4-му вводу, что-то вроде этого:

ВХОД13 ВХОД12 ВХОД11 ВХОД14 (результат) .

для этого я использую эту функцию:

var reg1 = /^(tiempo)(1)(1|2|3)$/;
var reg2 = /^(tiempo)(2)(1|2|3)$/;
var reg3 = /^(tiempo)(3)(1|2|3)$/;
    $("input[name^='tiempo']").bind( "blur", function() {
        //alert($(this).attr('name'))
        if ( $(this).attr('name').match(reg1) ){
            $("input[name^='totalt1']").val( $("input[name^='tiempo1']").sumValues() );
        }
        if($(this).attr('name').match(reg2)){
            $("input[name^='totalt2']").val( $("input[name^='tiempo2']").sumValues() );
        }
        if($(this).attr('name').match(reg3)){
            $("input[name^='totalt3']").val( $("input[name^='tiempo3']").sumValues() );
        }
        //$("input[name^='totalt']").val( $("input[name^='tiempo']").sumValues() );
    });

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

INPUTn1 INPUTn2 INPUTn3 INPUTn4 (результат) .

Функция для создания большего количества входов:

var counter = 2;
    $("#addButton").click(function () {     
        if(counter>6){
            alert("Solo se permiten 6 Mediciones por dia");
            return false;}

        $('#tiempos_te').append( '<tr>' +
            '<td><input name="fac' + counter + '" type="text" id="fac' + counter + '" onKeyPress="return acceptNum(event)" maxlength="10" class="obligatorio"/></td>' +
            '<td> <input type="text"  name="tiempo' + counter + '1" id="tiempo' + counter + '1" class="obligatorio tiempo" maxlength="6" onKeyPress="return acceptNum(event)" /></td>' +
            '<td> <input type="text" name="tiempo' + counter + '2" id="tiempo' + counter + '2" class="obligatorio tiempo" maxlength="6" onKeyPress="return acceptNum(event)" /></td>' +
            '<td> <input type="text" name="tiempo' + counter + '3" id="tiempo' + counter + '3" class="obligatorio tiempo" maxlength="6" onKeyPress="return acceptNum(event)" /></td>' +
            '<td><input type="text" name="totalt' + counter + '" id="totalt' + counter + '" readonly="readonly" class="total_tiempo" /></td>' +
            '<td><select name="turn' + counter + '" id="turn' + counter + '" class="obligatorio">' +
            '<option value="2">Vespertino</option>' +
            '<option value="3">Nocturno</option>' +
            '</select></td>' +
          '</tr>' );        
        counter++;
    });

Но новые входы ничего не делают, не выполняют сумму, что происходит? знак равно

01.10.2013

Ответы:


1

Пытаться

$('#tiempos_te').on('blur','input[name^="tiempo"]', function(){
   // since the names are in the format "tiempo#1" where # i sa number abd the last digit is either 1,2 or 3
   // you can extract the # number by removing the "tiempo" string and also the last digit.
   var number= this.name.replace('tiempo',''), // extract the number from tiempoxxx
       counter = number.substr(0, number.length -1); // keep everything from the number except the last digit 

   // now we are left with the counter as it was used to create these fields
   $('input[name^="totalt'+counter+'"]').val ( $('input[name^="tiempo'+counter+'"]').sumValues() );
});
01.10.2013
  • Я получаю эту ошибку в chrome: Uncaught TypeError: Object #‹Object› не имеет метода 'on' 02.10.2013
  • @JuanJoseGutierrezAldana, какую версию jQuery вы используете? (.on был представлен в v1.7) 02.10.2013
  • для более ранних версий замените на .delegate('input[name^="tiempo"]', 'blur', function(){ 02.10.2013
  • Из Jsquery.js: /*! * jQuery JavaScript Library v1.4.2 * jquery.com * * Copyright 2010, John Resig * Двойная лицензия MIT или Лицензии GPL версии 2. * jquery.org/license * * Включает Sizzle.js * sizzlejs.com * Copyright 2010, The Dojo Foundation * Выпущено под лицензиями MIT, BSD и GPL. * * Дата: Сб, 13 февраля, 22:33:48 2010 -05:00 */ 02.10.2013
  • Нет результатов... ничего не получится, вам нужен весь файл? 02.10.2013
  • @JuanJoseGutierrezAldana, можете ли вы опубликовать его на jsfiddle.net или plnkr.co/edit 02.10.2013
  • @JuanJoseGutierrezAldana, вы не скопировали код delegate в том виде, в котором я его опубликовал.. а также я обновил свой код, добавив еще несколько исправлений. См. jsfiddle.net/8XzDk/1 02.10.2013
  • @gaby-aka-g-petrioli Божество — это именно то, что я ищу, но не могли бы вы объяснить мне код? :D и как я могу сделать то же самое с временем данных? ММ:СС? 02.10.2013
  • @JuanJoseGutierrezAldana добавил несколько комментариев в код ответа 02.10.2013
  • @gaby-aka-g-petrioli Большое спасибо, а теперь подсчитайте время данных в формате MM:SS, как мне это сделать? 02.10.2013
  • @JuanJoseGutierrezAldana, не уверен, что понимаю, чего именно вы хотите.. возможно, вы захотите задать новый вопрос с полной информацией о том, чего вы пытаетесь достичь.. 02.10.2013
  • Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]