web-dev-qa-db-fra.com

copie de la valeur du champ de saisie de fichier d'un formulaire vers le champ de saisie d'un autre formulaire

J'ai donc deux formulaires, les deux ont un champ de saisie de type de fichier et j'ai essayé

$('.inputfield1').change(function(){
   var file = $(this).val();
   $('.inputfield2').val(file);
});

mais alors il n'est pas copié correctement et Firebug se plaint de "Security Error" dans la console d'erreur

qu'est-ce que j'ai fait de mal et comment puis-je copier correctement la valeur d'un champ de saisie de fichier

par ailleurs, le formulaire de destination a une cible qui est définie sur un iframe (pas un domaine différent)

26
pillarOfLight

Vous ne pouvez pas déplacer la valeur d'une entrée de fichier vers une autre, c'est un risque pour la sécurité. Au lieu de cela, clonez l'entrée, placez le clone à l'emplacement de l'original et déplacez l'original dans le formulaire masqué.

$(".inputfield1").change(function(){
  var $this = $(this), $clone = $this.clone();
  $this.after($clone).appendTo(hiddenform);
});
36
Kevin B

Je sais que c'est une réponse tardive, mais j'ai eu un problème similaire que je viens de découvrir aujourd'hui.

Ce que j'ai fait, c'est déplacer l'entrée du fichier vers le nouvel emplacement après avoir supprimé l'actuelle dans l'autre emplacement. En déplaçant l'élément, tout est resté intact sur tous mes tests.

$('.inputfield1').change(function() {
  $('.otherinputfield').remove();
  $('#newform').append($(this));
});
1
Adrian Stride