Après une demande Ajax, je veux réinitialiser mes éléments de formulaire à leur valeur d'origine, à l'exception de trois entrées de sélection, car leurs valeurs vont être utilisées de manière fréquente.

J'ai déclaré cette variable en dehors de "document ready":

var estado_inicial_cuerpo;

J'ai essayé ceci dans la fonction "document ready":

estado_inicial_cuerpo=$("#formulario_venta").clone().children('#id_bodega_idbodega').remove().children('#id_caja_idcaja').remove().end();

Et dans la partie "succès" de l'ajax (ou si vous voulez, dans un bouton qui active ce code), celui-ci:

$('#formulario_venta').html(estado_inicial_cuerpo);

Mais, dans la console, je peux voir que la page est comme chargée deux fois en utilisant ce code, et aussi, le formulaire entier est vide, tous les éléments disparaissent.

L'ID de mon formulaire est formulario_venta et id_caja_idcaja, id_bodega_idbodega sont les ID des entrées de sélection que je veux ignorer.


Maintenant, j'ai essayé cela à l'intérieur du code "document ready":

estado_inicial_cuerpo=$("#formulario_venta").not("#id_bodega_idbodega, #id_caja_idcaja").html();

Maintenant, le formulaire ne disparaît pas, mais tout est restauré, y compris les éléments que j'ai écrits à l'intérieur "pas".

0
masozow 8 août 2016 à 09:23

3 réponses

Meilleure réponse

As-tu essayé:

$('#formulario_venta').find('input, textarea, select').not("#id_bodega_idbodega, #id_caja_idcaja").val("");

De cette façon, vous dites que toutes les entrées auront value = "" (vide) sauf celle qui est à l'intérieur .not()

.find('input, textarea') sont le type d'entrées que votre formulaire peut avoir

0
sandrina-p 8 août 2016 à 07:53

Que diriez-vous d'essayer juste

estado_inicial_cuerpo = $("#formulario_venta").html()

Avez-vous un échantillon?

0
user5283754user5283754 8 août 2016 à 06:27

Effacez d'abord le html de l'élément, puis attribuez-le à nouveau.

$('#formulario_venta').html('');
$('#formulario_venta').html(estado_inicial_cuerpo);
0
Sandip - Full Stack Developer 8 août 2016 à 06:31