16/05/2013, 03:17
|
| | Fecha de Ingreso: marzo-2011
Mensajes: 23
Antigüedad: 13 años, 8 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!!! |