Foros del Web » Creando para Internet » HTML »

[SOLUCIONADO] json en atributos DATA

Estas en el tema de json en atributos DATA en el foro de HTML en Foros del Web. buenas amigos, Estoy haciendo unas pruebas para mejorar un plugin que tengo, y se me presentó una duda, más que un problema es una duda ...
  #1 (permalink)  
Antiguo 30/01/2015, 18:52
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
json en atributos DATA

buenas amigos,

Estoy haciendo unas pruebas para mejorar un plugin que tengo, y se me presentó una duda, más que un problema es una duda en cuanto al "standard" y quiero confirmar con ustedes a ver su opinión.


La cosa es que estoy ajustando un validador que tengo y he decidido colocar los arreglos de validación en un atributo data. asi :
Código HTML:
Ver original
  1. <input type="text" class="form-control" id="telefono" placeholder="000-0000000" data-validacion='"{"telefono":{"mensaje":"El teléfono no es valido"}"'>
La cosa es que como podrán ver, el valor de data-validación esta entre comillas simples y no dobles, como suelen colocarse los valores de los atributos, esto para poder colocar el json de modo que pueda ser leido con js. sin embargo, mi duda es allí se quiebra algún estandard HTML como tal?


Gracias.
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #2 (permalink)  
Antiguo 30/01/2015, 18:59
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: json en atributos DATA

buenas...
esto nada tiene que ver con javascript. muevo a html.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 30/01/2015, 19:08
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: json en atributos DATA

Cita:
Iniciado por zerokilled Ver Mensaje
buenas...
esto nada tiene que ver con javascript. muevo a html.
Creo que si tiene que ver, pues pensé que probablemente tambien pudiese haber una forma de con js interpretar el array del data pasandolo con comillas simples y no dobles.
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #4 (permalink)  
Antiguo 30/01/2015, 21:32
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: json en atributos DATA

realmente entiendes poco de html. si, en js hay forma de tomar ese dato e interpretarlo. en html puedes usar cualquiera de las comillas para asignar un valor a los atributos. en este caso, corresponde comillas simples porque el formato json ocupa las comillas dobles para definir el campo y el valor. cualquier atributo que leas desde javascript siempre lo recibirás como un string. entonces, básicamente escribes el atributo con JSON así attribute='JSON'
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 30/01/2015, 21:35
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: json en atributos DATA

Cita:
Iniciado por zerokilled Ver Mensaje
realmente entiendes poco de html. si, en js hay forma de tomar ese dato e interpretarlo. en html puedes usar cualquiera de las comillas para asignar un valor a los atributos. en este caso, corresponde comillas simples porque el formato json ocupa las comillas dobles para definir el campo y el valor. cualquier atributo que leas desde javascript siempre lo recibirás como un string. entonces, básicamente escribes el atributo con JSON así attribute='JSON'
Tanto como entender poco, no lo creo.... se que de ambas maneras funciona, sin embargo tambien sé que hay muchas cosas que funcionan más no son estandard y esa era mi pregunta. Muchas gracias por confirmarme que no hay problema.

PD : En javascript si el json es pasado con comillas dobles no es leido como string. es leido como lo que es... un objeto.

Gracias una vez más. saludos.
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #6 (permalink)  
Antiguo 31/01/2015, 00:34
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: json en atributos DATA

Cita:
Iniciado por rjulio21 Ver Mensaje
En javascript si el json es pasado con comillas dobles no es leido como string. es leido como lo que es... un objeto.
Lo que te dijo zerokilled fue:

Cita:
Iniciado por zerokilled Ver Mensaje
cualquier atributo que leas desde javascript siempre lo recibirás como un string...
Y es que es así. Al momento de leer el contenido del atributo, obtienes una cadena y solo una cadena; tienes que parsearlo para convertirlo en un objeto JSON.

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
  #7 (permalink)  
Antiguo 31/01/2015, 07:02
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: json en atributos DATA

Cita:
Iniciado por Alexis88 Ver Mensaje
Lo que te dijo zerokilled fue:



Y es que es así. Al momento de leer el contenido del atributo, obtienes una cadena y solo una cadena; tienes que parsearlo para convertirlo en un objeto JSON.

Saludos
Amigo, disculpenme pero si agregas un json en un atributo data no es necesario parsear nada. basta con que lo tomes, guardes en una variable y puedes manejarlo tal como quieras hacerlo. si le haces un typeof y lo imprimes te dira que es un "object" no un string.
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #8 (permalink)  
Antiguo 31/01/2015, 10:24
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: json en atributos DATA

Falso. Cualquier valor que tomas de un atributo, cualquiera sea, dígase un número, una cadena, un valor booleano, un array, un objeto, etc., siempre será tomado como una cadena, por eso es que si asignas un número a un atributo y luego lo intentas sumar, solo se concatena.

Para muestra, un botón: DEMO.

Fíjate en los valores que se muestran en consola para que corrobores lo que te digo.

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
  #9 (permalink)  
Antiguo 31/01/2015, 10:56
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: json en atributos DATA

Cita:
Iniciado por Alexis88 Ver Mensaje
Falso. Cualquier valor que tomas de un atributo, cualquiera sea, dígase un número, una cadena, un valor booleano, un array, un objeto, etc., siempre será tomado como una cadena, por eso es que si asignas un número a un atributo y luego lo intentas sumar, solo se concatena.

Para muestra, un botón: DEMO.

Fíjate en los valores que se muestran en consola para que corrobores lo que te digo.

Saludos
Estas equivocado, eso sucede porque el simbolo "+" es el mismo que se usa para "concatenar" y por tanto el motor de javascript interpreta ambos valores como string. Pero si capturas un json por medio de un data sera tomado como tal. como json (siempre y cuando este armado con comillas dobles el json y el atributo con comillas simples). Si ese mismo json intentas concatenarlo con algo mas te concatenara "[object]" y no un string.

Para muestra te dejo esto para que lo compruebes, verifica la consola
otro demo
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #10 (permalink)  
Antiguo 31/01/2015, 11:17
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: json en atributos DATA

@rjulio21, te equivocas. lo que sucede en tu demo es que estas usando jquery. la funcion data te devuelve un objeto porque detecta que el contenido es un json. pero eso es una habilidad que provee la libreria, no es una caracteristica nativa de javascript. y si no, haz lo siguiente console.log (typeof document.getElementById( 'apellido' ).dataset.validacion); y veras que el atributo es simplemente un string.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 31/01/2015 a las 11:33
  #11 (permalink)  
Antiguo 31/01/2015, 11:25
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: json en atributos DATA

Vale vale, perfecto, entonces mis disculpas y gracias por la aclaratoria a ambos :D
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos

Etiquetas: javascript
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 11:04.