JavaScript - ayuda con evento

 
Vista:
Imágen de perfil de Hfr

ayuda con evento

Publicado por Hfr (29 intervenciones) el 16/05/2016 15:17:00
Hola chicos como están, espero que muy bien

tengo esta interfaz

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<script language="JavaScript">
function habilita(){
 
	elementos = document.getElementsByClassName("camposx");
	elementosx = document.getElementsByClassName("campos");
 
	for(var i = 0; i <= elementos.length; i++)
	{
 
		if (elementosx[0].checked== true)
		{
				var actividad1 ="slslslslslsl"+ '  '
				+"mas";
			elementos[i].value=actividad1;
		}
		else { elementos[i].value='';  }
	}
 
	return false;
}
 
function habilita2()
{
 
	elementos = document.getElementsByClassName("camposx");
	elementosx = document.getElementsByClassName("camposx2");
 
	for(var i = 0; i <= elementos.length; i++)
	{
		if (elementosx[0].checked== true)
		{
			var actividad2 ="kkkk";
			elementos[i].value=actividad2;
 
		}
		else { elementos[i].value='';  }
 
	}
 
	return false;
}
 
</script>

con estas 2 funciones adiciono un texto fijo al texarea, obviamente la funcionalidad es que al seleccionar un check se inserte un texto en campo, y cuando se retire el check se elimina el texto de esta forma me pareció simple, pero el requerimiento pide que se adicione el trextro del check 1 y del check 2 al mismo tiempo, si yo selecciono el check 1 y el check 2 debería de salir el contenido de la variable actividad 1 y actividad 2 en el mismo campo al mismo tiempo, lo que sucede ahora es que al tener seleccionado ambos check sale el contenido de una sola variable, adicional mente cuando se retire un check solo se debería eliminar el contrenido de la variable que trae el chek y las demás selecciones deberían de quedar en trextarea


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<form>
<table >
<tr><td>
	<div class="fila">
		<span class="etiqueta"><label for="username">Actividad 1</label></span>
		<span class="form-el"><input  name="act1" type="checkbox" class="campos" onClick="return habilita()" ></span>
 
	</div>
 
	<div class="fila">
		<span class="etiqueta"><label for="username">Actividad 2</label></span>
		<span class="form-el"><input  name="act2" type="checkbox" class="camposx2" onClick="return habilita2()"  VALUE=""></span>
 
	</div>
 
	<div class="fila">
		<span class="etiqueta"><label for="username">Actividad 3</label></span>
		<span class="form-el"><input  name="act3" type="checkbox"class ="" VALUE=""></span>
 
	</div>
 
	<div class="fila">
		<span class="etiqueta"><label for="username">Actividad 4</label></span>
		<span class="form-el"><input  name="act4" type="checkbox" class =""  VALUE=""></span>
 
	</div>
 
	<div class="fila">
		<span class="etiqueta"><label for="username">Actividad 5</label></span>
		<span class="form-el"><input  name="act5" type="checkbox" class =""  VALUE=""></span>
 
	</div>
 
	<div class="fila">
		<span class="etiqueta"><label for="username">Actividad 6</label></span>
		<span class="form-el"><input  name="act" type="checkbox" class =""  VALUE=""></span>
 
	</div>
 
	<div class="fila">
		<span class="etiqueta"><label for="username">Actividad 7</label></span>
		<span class="form-el"><input  name="act7" type="checkbox" class =""  VALUE=""></span>
	</div>
 
	<div class="fila">
		<span class="etiqueta"><label for="username">Actividad 8</label></span>
		<span class="form-el"><input  name="act8" type="checkbox" class =""  VALUE=""></span>
 
	</div>
</td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;
</td>
<td>
	<div class="fila">
		<span class="etiqueta"><label for="mensaje">Actividades  </label></span><br>
		<span class="form-el"><textarea  rows="5"   cols="40" required  class ="camposx"   name="ESTA_NT"></textarea></span>
	</div>
</td></tr>
</table>
 
<table>
 
	<tr>
	<td>
 
		<div class="fila">
		<span class="etiqueta"><label for="nombre">  </label></span>
		<span class="form-el"><input class="button white" name="btn" type="submit" value="ENVIAR DATOS "	/></span>
 
		</div>
	</td>
	<td>
 
		<div class="fila">
			<span class="etiqueta"><label for="nombre">  </label></span>
			<span class="form-el"><input name="btn"  class ="button white" type="reset" value="LIMPIAR CAMPOS"	/></span>
 
		</div>
	</td>
	</tr>
 
</table>
 
 
</form></center>

itrerfaz

espero sus comentarios y sugerencias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Juan Diego
Val: 4
Ha disminuido su posición en 240 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

ayuda con evento

Publicado por Juan Diego (37 intervenciones) el 17/05/2016 22:06:04
Hola Hfr, espero te encuentres muy bien.

En esto momento lo que se me ocurre es manejar una única función, la cual va a ser disparada en el momento que un checkBox sea clicleado.

La función se encargaría de recorrer todos los nodos compuestos por chekbox, para lo cual te recomiendo que todos los checkBox tengan la misma clase o el mismo nombre, esto con el fin de utilizar los métodos getElementsByClassName o getElementsByName para capturar todos estos nodos.

Posteriormente con un for y un condicional, validas cuales están seleccionados para armar tu cadena y esto es lo que muestras en tu TextArea.

Espero te ayude esta idea, cualquier inquietud estaré atento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Juan Diego
Val: 4
Ha disminuido su posición en 240 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

ayuda con evento

Publicado por Juan Diego (37 intervenciones) el 17/05/2016 22:26:52
Hola Hfr,

Pensando en otra solución, también podrías emplear objetos o arreglos.

Al crear un objeto o arreglo de forma global, podrías agregar o quitar valores como desees, esto te permitiría tener más control.

Si no sabes como emplearlos, te recomiendo consultar sobre ello y cualquier duda estaré atento.

Feliz día.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Hfr

ayuda con evento

Publicado por Hfr (29 intervenciones) el 18/05/2016 18:29:31
Hola juan, si estoy genera dolo con un array pero tengo algunos inconvenientes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<html>
<head>
<script type="text/javascript">
 
function habilita(){
 
 
	elementos = document.getElementsByClassName("camposx");
	elementosx = document.getElementsByClassName("campos");
 
 
	for(var i = 0; i <= elementos.length; i++)
	{
		var x = ["actividad1"];
 
		var l = ["actividad2"];
 
		elementos[i].value=x+l;
		if (elementosx[0].checked== true)
		{
 
			elementos[i].value=x;
 
		}
		else {
			x.splice(0, 1);
			elementos[i].value=x;
 
		}
 
		if (elementosx[1].checked== true)
		{
 
			elementos[i].value=l ;
		}
		else {
			l.splice(0, 1);
			elementos[i].value=l;
 
		}
 
	}
 
}
 
 
 
</script>
</head>
<body>
<form action ="">
<input type="submit" value="2" onClick="return habilita()">
 
 
<div class="fila">
     <span class="etiqueta"><label for="username">Actividad 1</label></span>
      <span class="form-el"><input  name="act1" type="checkbox" class="campos" onClick="return habilita()" ></span>
 
	     </div>
 
		 <div class="fila">
     <span class="etiqueta"><label for="username">Actividad 1</label></span>
      <span class="form-el"><input  name="act2" type="checkbox" class="campos" onClick="return habilita()" ></span>
 
	     </div>
 
 
   <div class="fila">
		        <span class="etiqueta"><label for="mensaje">Actividades  </label></span><br>
        <span class="form-el"><textarea  rows="5"   cols="40"   class ="camposx"   name="ESTA_NT"></textarea></span>
   </div>
   </form>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Hfr

ayuda con evento

Publicado por Hfr (29 intervenciones) el 18/05/2016 20:51:57
Hola juan, yo lo realice de esta forma, aun que un poco extensa.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
<html>
<head>
<script type="text/javascript">
 
function habilita(){
	elementos = document.getElementsByClassName("camposx");
	elementosx = document.getElementsByClassName("campos");
 
	for(var i = 0; i <= elementos.length; i++)
	{
		var x = ["actividad1\n"];
		var l = ["actividad2\n"];
		var y = ["actividad3\n"];
		var a = ["actividad4\n"];
		var b = ["actividad5\n"];
		var c = ["actividad6\n"];
		var e= ["actividad7\n"];
		var f= ["actividad8\n"];
		var d = [""];
 
 
		if (elementosx[0].checked== true)
		{
 
			elementos[i].value=x;
		}
		else {
			x.splice(0, 1);
			elementos[i].value=x;
		}
 
		if (elementosx[1].checked== true)
		{
 
			elementos[i].value=l ;
		}
		else {
			l.splice(0, 1);
			elementos[i].value=l;
 
		}
 
		if (elementosx[2].checked== true)
		{
 
			elementos[i].value=y ;
		}
		else {
			y.splice(0, 1);
			elementos[i].value=y;
 
		}
 
		if (elementosx[3].checked== true)
		{
 
			elementos[i].value=a ;
		}
		else {
			a.splice(0, 1);
			elementos[i].value=a;
		}
 
 
		if (elementosx[4].checked== true)
		{
 
			elementos[i].value=b ;
		}
		else {
			b.splice(0, 1);
			elementos[i].value=b;
 
		}
 
		if (elementosx[5].checked== true)
		{
 
			elementos[i].value=c ;
		}
		else {
			c.splice(0, 1);
			elementos[i].value=c;
 
		}
 
		if (elementosx[6].checked== true)
		{
 
			elementos[i].value=e ;
		}
		else {
			e.splice(0, 1);
			elementos[i].value=e;
 
		}
 
		if (elementosx[7].checked== true)
		{
 
			elementos[i].value=f ;
		}
		else {
			f.splice(0, 1);
			elementos[i].value=f;
		}
 
		if (elementosx[8].checked== true)
		{
 
			elementos[i].value=d+ l +x +y +a + b+ c +e+ f;
		}
	}
 
	return false;
}
 
</script>
</head>
<body>
<form action ="">
<input type="submit" value="2" onClick="return habilita()">
 
 
<div class="fila">
     <span class="etiqueta"><label for="username">Actividad 1</label></span>
      <span class="form-el"><input  name="act1" type="checkbox" class="campos" onClick="return habilita()" ></span>
 
	     </div>
 
		 <div class="fila">
     <span class="etiqueta"><label for="username">Actividad 2</label></span>
      <span class="form-el"><input  name="act2" type="checkbox" class="campos" onClick="return habilita()" ></span>
 
	     </div>
 
		  <div class="fila">
     <span class="etiqueta"><label for="username">Actividad 3</label></span>
      <span class="form-el"><input  name="act3" type="checkbox" class="campos" onClick="return habilita()" ></span>
 
	     </div>
		 <div class="fila">
		<span class="etiqueta"><label for="username">Actividad 4</label></span>
      <span class="form-el"><input  name="act4" type="checkbox" class="campos" onClick="return habilita()" ></span>
 
	     </div>
 
		 	 <div class="fila">
		<span class="etiqueta"><label for="username">Actividad 5</label></span>
      <span class="form-el"><input  name="act5" type="checkbox" class="campos" onClick="return habilita()" ></span>
 
	     </div>
 
 
 
		 	 <div class="fila">
		<span class="etiqueta"><label for="username">Actividad 6</label></span>
      <span class="form-el"><input  name="act6" type="checkbox" class="campos" onClick="return habilita()" ></span>
 
	     </div>
 
		  <div class="fila">
		<span class="etiqueta"><label for="username">Actividad 7</label></span>
      <span class="form-el"><input  name="act7" type="checkbox" class="campos" onClick="return habilita()" ></span>
 
	     </div>
 
		   <div class="fila">
		<span class="etiqueta"><label for="username">Actividad 8</label></span>
      <span class="form-el"><input  name="act7" type="checkbox" class="campos" onClick="return habilita()" ></span>
 
	     </div>
 
 
		 		 <div class="fila">
     <span class="etiqueta"><label for="username">todos</label></span>
      <span class="form-el"><input  name="act3" type="checkbox" class="campos"  checked style="display:none" ></span>
 
	     </div>
 
 
   <div class="fila">
		        <span class="etiqueta"><label for="mensaje">Actividades  </label></span><br>
        <span class="form-el"><textarea  rows="12"   cols="40"   class ="camposx"   name="ESTA_NT"></textarea></span>
   </div>
   </form>
</body>
</html>

hace los que tiene que hacer.

si alguno lo hace de una forma mas simplificada de obtener le mismo resultado.
siempre estoy abierto a sugerencias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan Diego
Val: 4
Ha disminuido su posición en 240 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

ayuda con evento

Publicado por Juan Diego (37 intervenciones) el 18/05/2016 21:20:04
Hola Hfr, espero te encuentres muy bien.

Bueno, son varias las cosas por decir, comencemos:

1 - Te agradecemos que al momento de publicar código, lo hagas utilizando la herramienta code, esto con el objetivo de poder comprender mejor tu sentencias.

2 - En tu función al momento de capturar los nodos, creo truncaste los class name, debería ser:
1
2
elementos = document.getElementsByClassName("campos");
elementosx = document.getElementsByClassName("camposx");

3 - Por lo anterior, al decir lo siguiente:
1
for(var i = 0; i <= elementos.length; i++)
Estás recorriendo la cantidad de elementos, que contengan la clase camposx, la cual solo tiene el textArea.

4 -
1
2
var x = ["actividad1"];
var l = ["actividad2"];
Mejor idea que quienes indiquen la actividad sea los checkbox, no tú, ya que esto complicaría mucho tu código, algo así:
1
<input value="Actividad 1" name="act1" type="checkbox" class="campos" onClick="">
Si observas el checkbox tiene un value con el nombre de la actividad.

5 -
1
elementos[i].value=x+l;
Aquí estás insertando en el textArea lo que tienen predefinido, los arrays 'x' y 'l' sin validar si lo debes hacer, es decir si el checked está activo.

De aquí para abajo la idea es válida pero la lógica es muy estática y manual ¿Qué pasa si mañana no son 2 actividades si no 4, 5... 100?

Aquí te muestro el desarrollo de la primera idea que te propuse, por favor analiza:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function habilita(){
                var elementos = document.getElementsByClassName("campos");
                var elementosx = document.getElementsByClassName("camposx");
                var cadena = '';
 
                for(var i = 0; i < elementos.length; i++){
                    if (elementos[i].checked && i === (elementos.length-1)){
                        cadena += elementos[i].value;
                    }
                    else if(elementos[i].checked){
                        cadena += elementos[i].value + ',';
                    }
                }
 
                elementosx[0].innerHTML = cadena;
  }

La propiedad checked en si, nos dice que está seleccionada, no tienes que igualarlo con el valor booleano.

También desarrollé la idea con array, si te interesa, en este mismo tema te lo puedo explicar, solo avísame.

Feliz día.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
Imágen de perfil de Hfr

ayuda con evento

Publicado por Hfr (29 intervenciones) el 19/05/2016 15:08:24
Hola juan,
si evidentemente tu código es mas simple y mas corto.
y si me gustaría que me explicaras la idea del array
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan Diego
Val: 4
Ha disminuido su posición en 240 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

ayuda con evento

Publicado por Juan Diego (37 intervenciones) el 21/05/2016 19:31:44
Hola Hfr, espero estés bien.

El desarrollo de la idea con Array, sería la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var objeto = [];
            function habilitaConArray(actividad){
                var elementosx = document.getElementsByClassName("camposx");
                var i = 0;
                if(actividad.checked){
                    objeto.push(actividad.value);
                }
                else{
                    for(i; i < objeto.length; i++){
                        if(objeto[i] === actividad.value){
                            objeto.splice(i, 1);
                        }
                    }
                }
 
                elementosx[0].innerHTML = objeto.toString();
            }

1 - Debemos de tener claro el concepto de ámbito de variables; como ves, el array fue definido fuera de la función, por lo tanto, la variable está definida de forma "global" y al momento de ingresar a la función no se estará redefiniendo.

2 - La función comienza recibiendo un parámetro, el cual es un nodo (para este ejemplo es llamado actividad). El envío del nodo a la función, se hace con la palabra reservada "this", de la siguiente manera:
1
<input value="Actividad 1" name="act1" type="checkbox" class="campos" onClick="habilitaConArray(this)">

3 - Se captura el TextArea, donde se mostrarán los resultados.

4 - Se valida si el CheckBox está seleccionado o no; en caso de estarlo se adiciona la actividad al Array con el método push; en caso de no estarlo, se recorre el vector en busca de dicha actividad, si lo encuentra, lo elimina del vector con el método splice.

5 - Finalmente se muestran los resultados.

Espero haya sido lo suficientemente claro y por su puesto, espero que a la comunidad en general le sea de ayuda.

Feliz día.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Hfr

ayuda con evento

Publicado por Hfr (29 intervenciones) el 24/05/2016 21:01:17
hola juan, fue de gran ayuda tu opinión, realice la función con un arreglo tal como lo me lo indicaste y quedo super.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script type="text/javascript">
 
	var objeto = [];
            function habilitaConArray(actividad){
                var elementosx = document.getElementsByClassName("camposx");
                var i = 0;
                if(actividad.checked){
                    objeto.push(actividad.value);
                }
                else{
                    for(i; i < objeto.length; i++){
                        if(objeto[i] === actividad.value){
                            objeto.splice(i, 1);
                        }
                    }
                }
 
                elementosx[0].innerHTML = objeto.toString();
            }
 
 </script>

como adicional realice una función para controlar los check box que no han sido seleccionados y que no envinan un valor ningún valor, claro esta que esto ocurre es con el apche en el xammp
la función lo que hace es es identificar los check box que no han sido seleccionados , y luego genero n cantidad de campos tipo hidden y a estos les doy el nombre del check box que quedo sin marcar. y el archivo que procesa los datos tomara el valor de los campos hidden definido como cero .
la cual es la siguiente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script type="text/javascript">
 
function add_name(){
 
var campos = document.getElementsByClassName("campos");
var campos2 = document.getElementsByClassName("campos2");
for(var i = 0; i <= campos.length; i++)
{
 
if (campos[i].checked== false )
{
campos2[i].name=campos[i].name;
 
}
else {
 
	campos[i].value=1;
 
}
 
}
}
</script>


aquí les dejo el código completo
nuevamente juan te doy las gracias....


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
<html>
<head>
<script type="text/javascript">
 
	var objeto = [];
	function habilitaConArray(actividad){
		var elementosx = document.getElementsByClassName("camposx");
		var i = 0;
		if(actividad.checked){
			objeto.push(actividad.value);
		}
		else{
			for(i; i < objeto.length; i++){
				if(objeto[i] === actividad.value){
					objeto.splice(i, 1);
				}
			}
		}
 
		elementosx[0].innerHTML = objeto.toString();
	}
 
function add_name(){
 
var campos = document.getElementsByClassName("campos");
var campos2 = document.getElementsByClassName("campos2");
for(var i = 0; i <= campos.length; i++)
{
 
if (campos[i].checked== false )
{
campos2[i].name=campos[i].name;
 
}
else {
 
	campos[i].value=1;
 
}
 
}
}
</script>
<script type="text/javascript">
	 function habilita(){
        elementos=document.getElementsByClassName("campos");
        for(var i = 0; i < elementos.length; i++)
        {
            elementos[i].disabled = false;
        }
		 dlcampos=document.getElementsByClassName("camposx");
        for(var i = 0; i < dlcampos.length; i++)
        {
            dlcampos[i].disabled = false;
        }
 
 
		return false;
    }
 
    function inhabilita(){
        elementos=document.getElementsByClassName("campos");
        for(var i = 0; i < elementos.length; i++)
        {
            elementos[i].disabled = true;
        }
 
		 dlcampos=document.getElementsByClassName("camposx");
        for(var i = 0; i < dlcampos.length; i++)
        {
            dlcampos[i].disabled = true;
        }
 
		return false;
    }
 
 </script>
</head>
<body>
<form action ="xx.php" method="POST" name ="form">
 
 
 
<div class="fila">
     <span class="etiqueta"><label for="username">Actividad 1</label></span>
      <span class="form-el"><input value="activiadad1" name="act1" type="checkbox" disabled  class="campos" onClick="habilitaConArray(this)" ></span>
 
	     </div>
 
		 <div class="fila">
     <span class="etiqueta"><label for="username">Actividad 2</label></span>
      <span class="form-el"><input value="activiadad2 " name="act2" type="checkbox" disabled class="campos" onClick="habilitaConArray(this)"></span>
 
	     </div>
 
		  <div class="fila">
     <span class="etiqueta"><label for="username">Actividad 3</label></span>
      <span class="form-el"><input  name="act3" type="checkbox" value="activiadad3" disabled  class="campos" onClick="habilitaConArray(this)" ></span>
 
	     </div>
		 <div class="fila">
		<span class="etiqueta"><label for="username">Actividad 4</label></span>
      <span class="form-el"><input  name="act4" type="checkbox" value="activiadad4" disabled  class="campos" onClick="habilitaConArray(this)"></span>
 
	     </div>
 
		 	 <div class="fila">
		<span class="etiqueta"><label for="username">Actividad 5</label></span>
      <span class="form-el"><input  name="act5" type="checkbox" value="activiadad5" disabled  class="campos" onClick="habilitaConArray(this)"></span>
 
	     </div>
 
		 	 <div class="fila">
		<span class="etiqueta"><label for="username">Actividad 6</label></span>
      <span class="form-el"><input  name="act6" type="checkbox" disabled value="activiadad6" class="campos" onClick="habilitaConArray(this)" ></span>
 
	     </div>
 
		  <div class="fila">
		<span class="etiqueta"><label for="username">Actividad 7</label></span>
      <span class="form-el"><input  name="act7" type="checkbox" class="campos" disabled  value="activiadad7" onClick="habilitaConArray(this)" ></span>
 
	     </div>
 
		   <div class="fila">
		<span class="etiqueta"><label for="username">Actividad 8</label></span>
      <span class="form-el"><input  name="act8" type="checkbox" class="campos" disabled  value="activiadad8"onClick="habilitaConArray(this)"></span>
 
    </div>
 
 
-
   <div class="fila">
		        <span class="etiqueta"><label for="mensaje">Actividades  </label></span><br>
        <span class="form-el"><textarea  rows="12"   cols="40"   class ="camposx" disabled      name="ESTA_NT"></textarea></span>
   </div>
 
   <?php $valor=8; for ($x=1;   $x<=$valor; $x++){ ?>
<input type="hidden" class= "campos2" value ="0" >
 
<?php }
?><br>
   <input type="submit" value="2enviar datos" onclick="return add_name()"/>
 
   <br>
   <input type="submit" value="editar" onclick="return habilita()"/>
 
      <br>
   <input type="submit" value="cancelar "onclick="return inhabilita()"/>
 
   </form>
</body>
</html>
 
<?php
 
 
$x1 = $_POST['act1'];
$x2 = $_POST['act2'];
$x3 = $_POST['act3'];
$x4 = $_POST['act4'];
$x5 = $_POST['act5'];
$x6 = $_POST['act6'];
$x7 = $_POST['act7'];
$x8 = $_POST['act8'];
 
echo "datos del check"." ".$x1." ".$x2." ".$x3;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Hfr

ayuda con evento

Publicado por Hfr (29 intervenciones) el 25/05/2016 22:41:55
Hola juan como estas
me cambiaron la torta y ahora la quieren así

Captura

y pues ni modo.


debajo del else
yo adicione un for para recorrer los campos elementosx porque va es un chek y al frente un un texbox pequeño

1
2
3
for (k=0; k< elementosx.length; k++){
    elementosx[k].innerHTML=objeto;
}


pero cuando yo le asigno al objeto la posicion de k
1
elementosx[k].innerHTML=objeto[k];
queda como indefinido y la quitar la posucon en ambos campos me aadiciona el valor del arreglo objeto

también probé tal como le hice con los campos heddin per en vez de la propiedad name quedaría value pero no funciono y me dieron hasta ganas de llorar porque hay varios formularios muy similares que ya los habia terminado ahora tengo que dejarlos de la otra forma...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan Diego
Val: 4
Ha disminuido su posición en 240 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

ayuda con evento

Publicado por Juan Diego (37 intervenciones) el 26/05/2016 23:58:18
Hola Hfr,

Lamento lo que me comentas.

¿Cuándo me dices campos elementosx, te refieres a los checkbox o los texarea?

Si me muestras el código de lo que haces y me explicas claramente que debe hacer finalmente la página, con mucho gusto podría ayudarte.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Hfr

ayuda con evento

Publicado por Hfr (29 intervenciones) el 27/05/2016 16:10:16
a no dale pues ya realice los cambios

cree esta función js

para cargar el valor del chek box al text area en la posicion de x entonces si tengo n cehck box y n campos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function cambiosvalores()
{
 
	var  valord = document.getElementsByClassName("campos");
	var valor_ecibir = document.getElementsByClassName("camposx");
 
	for (var x = 0; x < valord.length; x++)
 
	{
 
		if (valord[x].checked)
 
		{
 
			valor_ecibir[x].value=valord[x].value;
 
		}
 
		else
		{
 
			valor_ecibir[x].value='';
 
		}
 
	}
}


luego adicione esta función js para ocultar parte del formulario para que no quede tan extenso

1
2
3
4
5
6
7
8
9
10
11
function mostrardiv()
{
   var elElemento=document.getElementById("oculto");
   if(elElemento.style.display == 'block') {
      elElemento.style.display = 'none';
   } else {
      elElemento.style.display = 'block';
   }
 
   return false;
}



otra
plan

hay voy progresadno poco a poco gracias juan por todo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar