none
Recuperar datos de una tabla cshtml a un array MVC 4 Js RRS feed

  • Pregunta

  • Hola, saludos

    Tengo un problema en una acción que realizo:

    1. Tengo una tabla que se llena agregando valores de contactos manualmente, los datos son tomados de un combobox llenado desde DB y un <input>, estos valores son agregados a una tabla

    2. Cuando se termine de llenar por el usuario tengo que mandarlos en el boton guardar a un metodo en el controlador que recibe una lista, ahora tengo un problema porque tengo que usar js, jquery solamente por politicas, mi codigo es el siguiente 

          <h3>
                            <small style="color: #0066FF;">Listad de Medios de Contactos</small>
                        </h3>
                        <div class="row">
                            <div class="center-block col-sm-6">
                                <table id="contactosTable" class="table table-bordered table-condensed table-striped">
                                    <thead>
                                        <tr>
                                            <th style="font-size: 90%; font-family: sans-serif;">
                                                Tipo de Medio de Contacto
                                            </th>
                                            <th style="font-size: 90%; font-family: sans-serif;">
                                                Medio de Contacto
    
                                            </th>
                                            <th style="font-size: 90%; font-family: sans-serif;">
                                                Herramientas
                                            </th>
                                        </tr>
                                    </thead>
                                </table>
                            </div>
                        </div>

    js:

      $('#btnGuarda').on('click', function () {
            var TableData = new Array();
    
            $('#contactosTable tr').each(function (row, tr) {
                TableData[row] = {
                    "tpCn": $(tr).find('td:eq(0)').text()
                    , "mc": $(tr).find('td:eq(1)').text()
                }
            });
    
            console.log(TableData);
    
    
        });

    esto se supone que solo debe imprimir las tres filas que muestro en la imagen, pero siempre me agrega una posición de mas, en el caso anterior el console es el siguiente 

    Imprime 4 posiciónes y la 0 esta vacía,

    Saludos 

    domingo, 18 de octubre de 2015 6:41

Respuestas

  • Hola, una solución sería cambiar la llamada de jQuery donde haces el each,

    $('#contactosTable tr').each(

    por algo como esto:

    $("#contactosTable > tbody > tr").each(

    Así obtendrías las filas que son hijas directas del cuerpo de la tabla.

    Un saludo.

    • Marcado como respuesta Rafiñña domingo, 18 de octubre de 2015 16:53
    domingo, 18 de octubre de 2015 15:54

Todas las respuestas