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

Я застрял с проблемой, и теперь она съедает мое время. У меня есть таблица с 7 записями (например), и эта таблица имеет элементы ввода и текстового поля, где пользователь может вводить данные. Теперь, когда разбивка на страницы имеет значение 5 записей на страницу, у меня есть две страницы. Пользователь вводит данные в раздел комментариев, нажимает «Далее» в нумерации страниц и вводит значение в разделе комментариев. Таким образом, технически пользователь ввел значения на обе страницы, разделенные логикой разбиения на страницы с данными. Проблема в том, что когда пользователь нажимает «Сохранить», он сохраняет только те элементы, которые находятся в фокусе, и их легче понять, которые видны на странице. Я прочитал API и часто задаваемые вопросы, и стало ясно, что datatable скрывает элементы, которые не находятся в фокусе, что делает их практически невозможными для поиска в DOM. Ниже приведен код, и мне нужна помощь в том, как получить данные из скрытых строк с помощью метода fnGetHiddenTrNodes(), создать скрытые элементы и добавить их к существующим видимым элементам таблицы перед отправкой формы. Я попробовал приведенный ниже код, но он не работает.

    $("#form").on("submit",function(){
       if($("#form").valid()){

           var nNodes = oTable.fnGetHiddenTrNodes();
           for ( var i=0 ; i<nNodes.length ; i++ )
           {
               var nHidden = document.createElement( 'input' );
               nHidden.type = 'hidden';
               nHidden.name = "hidden_input_"+i;
               nHidden.value = $('input', nNodes).val();

               //alert(nHidden.value);
               this.appendChild( nHidden );
           }

           $("#form").submit();   


       }else {
           validator.focusInvalid();
           return false;
       }

   });

Любая помощь приветствуется.


person Sirish    schedule 20.03.2013    source источник
comment
Кстати, я также попробовал приведенный ниже код, и он тоже не сработал.. :( $(#form).on(submit,function(){ if($(#form).valid()){ $( oTable.fnGetHiddenTrNodes()).find('input').appendTo(this); }else { validator.focusInvalid(); return false; } });'code'   -  person Sirish    schedule 20.03.2013


Ответы (2)


Хорошо.! Время закругляться. Спасибо @Bret за направление. Ниже приведен фрагмент кода, который, наконец, работает:

      $("#form").on("submit",function(){
        if($("#form").valid()){

            var nNodes = oTable.fnGetHiddenTrNodes();

                    $('td', nNodes).each(function(index,ncolumn) {

                        var nHidden = document.createElement( 'input' );
                        nHidden.type = 'hidden';
                        nHidden.name = $("input", ncolumn).attr("name");
                        nHidden.value = $("input", ncolumn).val();

                        if(typeof(nHidden.name)  != "undefined")
                        $("#form").append( nHidden );

                        nHidden = document.createElement( 'input' );
                        nHidden.type = 'hidden';
                        nHidden.name = $("textarea", ncolumn).attr("name");
                        nHidden.value = $("textarea", ncolumn).val();

                        if(typeof(nHidden.name)  != "undefined")
                        $("#form").append( nHidden );

                        nHidden = document.createElement( 'input' );
                        nHidden.type = 'hidden';
                        nHidden.name = $("textarea", ncolumn).attr("name");
                        nHidden.value = $("textarea", ncolumn).val();

                        if(typeof(nHidden.name)  != "undefined")
                        $("#form").append( nHidden );

                        nHidden = document.createElement( 'input' );
                        nHidden.type = 'hidden';
                        nHidden.name = $("select", ncolumn).attr("name");
                        nHidden.value = $("select", ncolumn).attr("value");

                        if(typeof(nHidden.name)  != "undefined")
                        $("#form").append( nHidden );

                    });

            clickedSave = true;


        }else {
            validator.focusInvalid();
            return false;
        }

    });  

Спасибо.

person Sirish    schedule 21.03.2013

person    schedule
comment
Спасибо @брет. Позвольте мне попробовать и вернуться.! :) - person Sirish; 21.03.2013
comment
Я попробовал это и изменил метод, чтобы он работал. Проверьте мои обновления. Спасибо, что подтолкнули меня! :) - person Sirish; 22.03.2013