Foros del Web » Programando para Internet » Javascript »

Activar campos requeridos al pulsar link

Estas en el tema de Activar campos requeridos al pulsar link en el foro de Javascript en Foros del Web. Hola amigos como estais, Vereis tengo un formulario en el que al pulsar un link se despliegan unos campos de texto, la cosa es que ...
  #1 (permalink)  
Antiguo 27/06/2013, 03:19
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Activar campos requeridos al pulsar link

Hola amigos como estais,

Vereis tengo un formulario en el que al pulsar un link se despliegan unos campos de texto, la cosa es que estos campos de texto solo pueden ser obligatorios si se pulsan este link.

Como podria hacer esto, conocen algun ejemplo o alguna guia para seguir?

Un saludo!!
  #2 (permalink)  
Antiguo 27/06/2013, 05:34
Avatar de Karmac  
Fecha de Ingreso: agosto-2011
Ubicación: Bilbao
Mensajes: 196
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: Activar campos requeridos al pulsar link

Le añades el evento onclick al link y ejecutas una función que cambie el atributo required de los input.

Inténtalo y nos cuentas. Saludos.
  #3 (permalink)  
Antiguo 27/06/2013, 08:22
Avatar de andresgarciadev  
Fecha de Ingreso: junio-2013
Mensajes: 218
Antigüedad: 10 años, 10 meses
Puntos: 32
Respuesta: Activar campos requeridos al pulsar link

es tal y como dijo Karmac.... pero solo una cosa, el evento onclick ya no se deberia usar
hazlo segun un id o clase llamando a la funcion cuando de click en el ^^
  #4 (permalink)  
Antiguo 01/07/2013, 02:32
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Activar campos requeridos al pulsar link

Hola amigos,

Muchas gracias por vuestra atención.

Vereis no tengo mucha experiencia en javascript, he entendido el funcionamiento que me han comentado pero creo que no sabria llevarlo a practica, conocerian algun ejemplo de esta funcion para que pudiese modificarla?

Bueno muchas gracias de nuevo

Un saludo
  #5 (permalink)  
Antiguo 01/07/2013, 03:44
Avatar de Karmac  
Fecha de Ingreso: agosto-2011
Ubicación: Bilbao
Mensajes: 196
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: Activar campos requeridos al pulsar link

Atento:

Código Javascript:
Ver original
  1. document.getElementById('link').onclick = function() {
  2.     return false;
  3. }

Ahí, como puedes ver, seleccionamos el elemento #link y le atribuimos una función anónima a su atributo onclick.

Al pinchar en el enlace se ejecutará lo que haya en la función, en este caso, con ese return false; haremos que el enlace no nos lleve a ninguna página.

Para cambiar un atributo utilizas setAttribute:

Código Javascript:
Ver original
  1. document.getElementById('input').setAttribute('required', 'required');

Solo tienes que juntar estas dos cosas para una implementación básica (muy básica). Te recomiendo que busques tutoriales de JavaSript, a mí se me daba de pena y ahora me defiendo bastante bien. No vas a perder nada de tiempo, estarás aprendiendo cosas nuevas.

Saludos.
  #6 (permalink)  
Antiguo 01/07/2013, 07:53
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Activar campos requeridos al pulsar link

Hola amigo tal,

Pues he hecho de este modo
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Documento sin título</title>
  5. <script type="text/javascript">
  6. function CamposRequeridos (){
  7.     document.getElementById('link').onclick = function () {
  8.         return false;
  9.     }
  10.         }
  11.         function Requeridos (){
  12.         document.getElementById('input').setAttribute('required', 'required');
  13.         }
  14.  
  15. </head>
  16.  
  17. <input type="text" name="s" />
  18.  <a onclick="CamposRequeridos();" id="link" name="link" href="*">Campos Requeridos</a>
  19. </body>
  20.  
  21. </form>
  22. </html>

La cosa es que no funciona en que me equivocado?

Muchas gracias!!
  #7 (permalink)  
Antiguo 02/07/2013, 08:05
Avatar de Karmac  
Fecha de Ingreso: agosto-2011
Ubicación: Bilbao
Mensajes: 196
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: Activar campos requeridos al pulsar link

Estas haciendo los veces los mismo. La cosa es asignar el atributo onclick, ya sea con JavaScript o con HTML, pero solo una vez.

Con HTML y una función:

Código HTML:
Ver original
  1. function camposRequeridos() {
  2.     return false;
  3. }
  4. <a href="#" onclick="camposRequeridos()">Campos Requeridos</a>

O bien:

Código HTML:
Ver original
  1. document.getElementById('link').onclick = function() {
  2.     return false;
  3. }
  4. <a href="#" id="link">Campos Requeridos</a>

Saludos.

Edito: los códigos de mi mensaje anterior son explicativos, no van a funcionar el tu página. getElementById('link') obtiene los elementos con ID link, al igual que getElementById('input') no obtiene los input, si no el primer elemento con ID "input". Busca una guía de JavaScript y HTML para saber como seleccionar otros elementos y poder adaptarlo.

Última edición por Karmac; 02/07/2013 a las 08:08 Razón: Datos adicionales.
  #8 (permalink)  
Antiguo 02/07/2013, 10:00
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 2 meses
Puntos: 36
Respuesta: Activar campos requeridos al pulsar link

Que tal @franjgg,

El trabajar con eventos de Javascript puede ser algo confuso al principio, de hecho si estas trabajando en una aplicación debes de considerar que tu aplicación funcione en todos, si no es que en todos los exploradores. Tu mayor problema va a ser Internet Explorer. Por lo tanto puedes tomar dos caminos:

1.- Hacer crossbrowser tu código javascript

2.- Utilizar un API llamado jQuery y que este se encargue de eso.

Para resolver tu duda te pongo un ejemplo con jQuery, utilizo la versión 1.7.2, si utilizas la versión mas nueva necesitaras cambiar el código que te comparto.


Código Javascript:
Ver original
  1. jQuery(function($) {
  2.  
  3.     $('.hidden').hide();
  4.  
  5.     $('.link').click(function (e) {
  6.         e.preventDefault();
  7.         $('.hidden').toggle();
  8.  
  9.         return false;
  10.     });
  11. });

Basicamente lo que hace el código es ocultar los inputs y controlar el evento del click en tu link.

El código que puedes copiar y pegar para que lo pruebes es el siguiente:

Código HTML:
Ver original
  1. <!DOCTYPE>
  2.     <head>
  3.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4.         <title>Jquery load with content and effect.</title>
  5.         <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  6.         <script type="text/javascript">
  7.             jQuery(function($) {
  8.  
  9.                 $('.hidden').hide
  10.  
  11.                 $('.link').click(function (e) {
  12.                     e.preventDefault();
  13.                     $('.hidden').toggle();
  14.  
  15.                     return false;
  16.                 });
  17.             });
  18.         </script>
  19.         <style type="text/css">
  20.             body { font-family:Arial, Helvetica, Sans-Serif; font-size:1.2em;}
  21.             table {font-size:1.2em;}
  22.             td:nth-child(1) label {background-color: #E655C1;}
  23.         </style>
  24.     </head>
  25.     <body>
  26.         <form action="#" method="post">
  27.             <label for="txt1">Input 1:</label>
  28.             <input type="text" name="txt1" id="txt1" /><br><br>
  29.  
  30.             <a class="link" href="#">Link</a><br><br>
  31.  
  32.             <label class="hidden" for="txt2">Input 2:</label>
  33.             <input class="hidden" type="text" name="txt2" id="txt2" /><br>
  34.  
  35.             <label class="hidden" for="txt3">Input 3:</label>
  36.             <input class="hidden" type="text" name="txt3" id="txt3" /><br><br>
  37.  
  38.             <input type="submit" value="Submit" />
  39.         </form>
  40.     </body>
  41. </html>

La funcionalidad es:
  1. Al darle click controlamos el evento que se va realizar en el link, osea detenemos que se vaya a la dirección, aún cuando hayas puesto una anlca (#)
  2. Si esta oculto los inputs se muestran, si no viceversa, esto lo hace la función toggle().
  3. Regresamos un valor false para ayudar a evitar la propagación del evento disparado por el tag 'a'

No dudes en preguntar si batallas con algo.
__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.

Etiquetas: campos, formulario, link, pulsar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:02.