elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Pregunta]: Tengo problemas para vaciar un formdata porque solamente se elimina el primer dato.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Pregunta]: Tengo problemas para vaciar un formdata porque solamente se elimina el primer dato.  (Leído 771 veces)
Leguim


Conectado Conectado

Mensajes: 674



Ver Perfil
[Pregunta]: Tengo problemas para vaciar un formdata porque solamente se elimina el primer dato.
« en: 27 Octubre 2020, 20:27 pm »

Hola,

tengo problemas al eliminar todos los datos/vaciar un formdata ya que solamente se elimina el primer dato y yo quiero que se eliminen todos los datos que contengan dicha variable:

Código
  1. var formdata_test = new FormData();
  2. formdata_test.append('a', 'letra a');
  3. formdata_test.append('b', 'letra b');
  4.  
  5. formdata_test.get('a');
  6. formdata_test.get('b');
  7.  
  8.        for(var key of formdata_test.keys())
  9. {
  10. formdata_test.delete(key);
  11. }
  12.  
  13. formdata_test.get('a');
  14. formdata_test.get('b');
  15.  

Si ustedes prueban este código en la consola de su navegador van a ver que el dato "b" con el valor "letra b" sigue vigente pero no el primer dato que sería "a" con el valor "letra a". Y yo quiero que se eliminen todos los datos, no solamente el primero.

Gracias.


En línea

MinusFour
Moderador Global
***
Conectado Conectado

Mensajes: 5.166


I'm fourth.


Ver Perfil WWW
Re: [Pregunta]: Tengo problemas para vaciar un formdata porque solamente se elimina el primer dato.
« Respuesta #1 en: 27 Octubre 2020, 21:42 pm »

Hola,

tengo problemas al eliminar todos los datos/vaciar un formdata ya que solamente se elimina el primer dato y yo quiero que se eliminen todos los datos que contengan dicha variable:

Código
  1. var formdata_test = new FormData();
  2. formdata_test.append('a', 'letra a');
  3. formdata_test.append('b', 'letra b');
  4.  
  5. formdata_test.get('a');
  6. formdata_test.get('b');
  7.  
  8.        for(var key of formdata_test.keys())
  9. {
  10. formdata_test.delete(key);
  11. }
  12.  
  13. formdata_test.get('a');
  14. formdata_test.get('b');
  15.  

Si ustedes prueban este código en la consola de su navegador van a ver que el dato "b" con el valor "letra b" sigue vigente pero no el primer dato que sería "a" con el valor "letra a". Y yo quiero que se eliminen todos los datos, no solamente el primero.

Gracias.

Es culpa del iterador y el delete. El iterador debe funcionar por índice o algo así y tu estás borrando un registro que modifica los indices del formData. Es solo una suposición mia...

De todas formas si obtienes la lista completa de llaves antes de hacer el delete funciona.

Código
  1. formdata_test.get('a');
  2. formdata_test.get('b');
  3. var keys = [...formdata_test.keys()];
  4.  
  5.        for(var key of keys)
  6. {
  7. formdata_test.delete(key);
  8. }
  9.  
  10. formdata_test.get('a');
  11. formdata_test.get('b');


En línea

Leguim


Conectado Conectado

Mensajes: 674



Ver Perfil
Re: [Pregunta]: Tengo problemas para vaciar un formdata porque solamente se elimina el primer dato.
« Respuesta #2 en: 28 Octubre 2020, 08:07 am »

Gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines