Ver Mensaje Individual
  #9 (permalink)  
Antiguo 16/05/2013, 03:17
superx335
 
Fecha de Ingreso: marzo-2011
Mensajes: 23
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Aplicar Javascript a array de input text

Buenas!

Pues sí, tienes razón, no es muy fiable, porque en el autocomplete (de JQuery) también pasa lo mismo, aunque apliques a un solo campo Dreamweaver no te autocompleta con la función, y aun así funciona.

No creo que copiarte todo el documento salga a cuenta, ya que es bastante largo, pero voy a tratar de ponerte lo más importante, o una muestra de todo lo que hay, a ver si pudieramos solucionarlo...

Lo primero que hago es comprobar las credenciales, para corroborar que ha ingresado en la palicación web. Luego conexión a base de datos y estas cabeceras:

<script type="text/javascript" src="lib/jquery/js/jquery-1.9.1.js"></script>
<script type="text/javascript" src="lib/jquery/js/jquery-ui-1.10.2.custom.js"></script>
<script type="text/javascript">

La función que añade la fila a la tabla al pulsar:

$(document).ready(function(){

$("#add").click(function(){
GrupoRepetido = false;
var n = $('tr:last td', $("#tablatareas")).length;
var tds = '<tr>';
tds +='<td align="center" valign="middle"><select name="sentido[]"><option value="E" selected="selected">Entrega</option><option value="R">Recogida</option></select></td>';
tds +='<td align="center" valign="middle"><input type="checkbox" name="DireccionCliente[]" /></td>';
tds += '<td align="center" valign="middle"><input type="text" name="empresatar[]" class="autocompleteContactos" /></td>';
tds += '<td align="center" valign="middle"><input name="grupo[]" type="text" value="'+Grupo+'" readonly="readonly" /></td>';
tds += '</tr>';

//$(tds).find('.autocompleteContactos').autocomplete ({source: availableTags}).end();

$("#tablatareas").append(tds);

NumFil = document.getElementsByTagName('tr').length; //Se cuenta el número de filas en el documento después de añadir una nueva
NumFil = NumFil - NoFilas; //Se resta el número de filas que había al cargar la página y el número de filas contabilizado actualmente
document.cookie = "NumFil =" + NumFil;local
})

$("#group").click(function(){
NoFilas++;
if(GrupoRepetido == false)
{
var n = $('tr:last td', $("#tablatareas")).length;

var tds = '<tr>';
for(i=1; i<15; i++) //Recorre los 14 campos imprimiento "Grupo i"
{
MostrarGrupo = Grupo + 1; //Para que, por defecto, el primero sea el grupo 1, pero al pulsar "Añadir nuevo grupo" se muestre grupo 2 y no grupo 1 (aunque internamente se guarde el número anterior al mostrado)
tds += '<td align="center" valign="middle"><b>Grupo '+MostrarGrupo+'</b></td>';
}
tds += '</tr>';
$("#tablatareas").append(tds);
Grupo++;
}

GrupoRepetido = true;


})

});
</script>




Después añado la función de autocomplete:

<link href="lib/jquery/css/ui-lightness/jquery-ui-1.10.2.custom.css" rel="stylesheet" type="text/css" />

<script>
$(function() {

$( ".autocompleteContactos" ).autocomplete(
{
source:'sourceContactos.php',
})

});
</script>



La tabla es enorme, pero bueno, un resumen:

<form id="formTareas" action="xxx.php" method="post">
<table width="100%" border="1" id="tablatareas">
<tr>
<td height="45" colspan="15" align="center" valign="middle">
<h3>Tareas del servicio</h3></td>
</tr>
<tr>
<td align="center" valign="middle"><strong>Sentido</strong></td>
<td align="center" valign="middle"><strong>Dirección del cliente</strong></td>
<td align="center" valign="middle"><strong>Empresa</strong></td>
</tr>
<tr>
<td align="center" valign="middle"><select name="sentido[1]">
<option value="E">Entrega</option>
<option value="R" selected="selected">Recogida</option>
</select></td>
<td align="center" valign="middle"><input type="checkbox" name="DireccionCliente[1]" /></td>
<td align="center" valign="middle"><input type="text" name="empresatar[1]" class="autocompleteContactos" /></td>
</tr>
</table>
<tr><td align="center" valign="middle"><input id="guardar" name="Guardar" type="button" value="Guardar" onclick="formTareas.submit()" /></td></tr>

El botón para pulsar cuando queremos añadir una fila:

<input type="button" value="Añadir tarea" id="add">

Este es para añadir un grupo pero no viene al caso

<input type="button" value="Añadir nuevo grupo" id="group">

<script type="text/javascript">
var NoFilas = document.getElementsByTagName('tr').length; //Almacenamos el número de filas que existen en el documento una vez cargado por primera vez
</script>


Básicamente por defecto se crea una tabla con unos campos, y si te fijas sus nombres son, por ejemplo, empresatar[1], luego al añadir filas cuento el total de filas y resto las que ya existian al principio, y le da el nombre empresatar[] con la posición que toque. Esto lo hago solo para poder recorrer tantos campos del formulario como filas haya, porque serán las posiciones del array "empresatar[]".

Si está demasiado liado o necesitas más información dímelo por favor, es que necesito tu ayuda porque por más vueltas que le doy, nada...

Gracias!!!