Foros del Web » Programando para Internet » Jquery »

Cómo puedo "cortar" y separar el name de un input?

Estas en el tema de Cómo puedo "cortar" y separar el name de un input? en el foro de Jquery en Foros del Web. Hola, necesito trabajar con el name de unos inputs pero estoy usando un framework en php que me pone los names de esta forma: Código ...
  #1 (permalink)  
Antiguo 16/06/2014, 06:10
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 9 meses
Puntos: 1
Cómo puedo "cortar" y separar el name de un input?

Hola,

necesito trabajar con el name de unos inputs pero estoy usando un framework en php que me pone los names de esta forma:

Código HTML:
<input type="text" name="data[Modelo][campo]" value="" /> 
Ahora bien, trabajar con ese name en jquery me trae problemas con los corchetes [], ademas q es muy largo.

Mi consulta es, como puedo cortar y separar ese name y que solo me quede el campo?

Es decir, tengo data[Modelo][campo] y que solo me quede campo, quitar corchetes y data[Modelo] y que sea generico, que no importe lo que haya entre corchetes y asi lo puedo usar en otras partes.

data[Persona][nombre]
data[Algo][otra_cosa]

...que solamente me quede lo que esta en negrita.

Gracias
  #2 (permalink)  
Antiguo 16/06/2014, 11:03
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Cómo puedo "cortar" y separar el name de un input?

Creo que sería conveniente si el valor de la variable campo lo colocaras en un pseudo-atributo data-*, por ejemplo:

Código HTML:
Ver original
  1. <input type="text" name="data[Modelo][campo]" data-campo = "campo" value="" />

Y luego, con jQuery lo tomas así:

Código Javascript:
Ver original
  1. $("[name^=data]").data("campo");

De este modo, tomas el valor del pseudo-atributo data-campo del campo cuyo nombre empiece con la palabra "data".

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 16/06/2014, 11:44
Avatar de livemusic  
Fecha de Ingreso: abril-2011
Ubicación: Lima - Chorrillos
Mensajes: 150
Antigüedad: 13 años, 6 meses
Puntos: 18
Respuesta: Cómo puedo "cortar" y separar el name de un input?

Espero y te funcione ...

Código Javascript:
Ver original
  1. $( "input[name=xD]" ).click(function(e){
  2.         // --> SelectInput      --> $('input[name=Rad1us]')
  3.         // --> SelectInputArray --> $('input[name="data[Modelo][Valeria]"]')
  4.  
  5.         var getNames = '';
  6.  
  7.         // :input --> Select all input or input type text == input:text
  8.         $(':input').each(function() {
  9.           var nameInput = $(this).attr('name'),
  10.               lastBracket = nameInput.split('[').pop().replace(']', '');
  11.  
  12.           getNames += lastBracket +' ';
  13.         });
  14.  
  15.  
  16.         console.log(getNames);
  17.         e.preventDefault();
  18.       });

-----------------------------------------------

Código HTML:
Ver original
  1. <input type="text" name="data[Rad1Us][Valeria]" /> <br />
  2.   <input type="text" name="data[gracias][thanks]" /> <br />
  3.   <input type="text" name="data[por][for]" /> <br />
  4.   <input type="text" name="data[todos][all]" /> <br />
  5.   <input type="text" name="data[momentos][moments]" /> <br />
  6.   <input type="button" name="xD" value="u_u" />

:'c ...
  #4 (permalink)  
Antiguo 16/06/2014, 12:03
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Cómo puedo "cortar" y separar el name de un input?

Con expresiones regulares sería más rápido:

Código Javascript:
Ver original
  1. var regexp = /\]\[(.*)\]/,
  2.     campos = [];
  3.  
  4. $("[name^=data]").each(function(){
  5.     var name = $(this).prop("name"),
  6.         result = regexp.exec(name);
  7.    
  8.     campos.push(result[1]);
  9. });
  10.  
  11. console.log(campos); //Imprime el valor de 'campo' de cada input

Es preferible limitar al grupo de elementos <input> a los cuales se les afectará con la función pues sería innecesario e ineficiente buscar el valor en cuestión en elementos del mismo tipo que no lo posean.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 16/06/2014 a las 13:55 Razón: Mejora

Etiquetas: cortar
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 01:10.