2012-01-17 14 views
25

、両方のファイルの種類の入力フィールドを持っていると私は別のフォームの入力フィールドに、フォームのファイル入力フィールドの値をコピー

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

を試みたが、それは正しくコピーされませんので、私は2つの形式があり、放火犯は、エラーコンソールの「セキュリティエラー」文句

私が間違って何をしたし、どのように私は適切な方法でファイル入力フィールド

の値をコピーすることができ、先のフォームが設​​定された目標を持っていますiframe(別のドメインではない)へ

+3

ありがとうございます。私はまったく同じことをしていて、同じ問題に遭遇しました。ニースは、他の人が既に行っているところに行っていることを知っています。 – Peter

答えて

31

1つのファイル入力値を別のファイル入力値に移動することはできません。これはセキュリティ上のリスクです。代わりに、入力をクローン化し、元の場所にクローンを配置し、オリジナルを隠しフォームに移動します。

$(".inputfield1").change(function(){ 
    var $this = $(this), $clone = $this.clone(); 
    $this.after($clone).appendTo(hiddenform); 
}); 
+1

ファイルはクローニングによって永続化されません。参照してください:http://jsfiddle.net/wV5a4/ – Esailija

+0

私はそれがないことを知っている、クローンはプレースホルダーです。 '.after()'は元の要素を返します。後ろに追加した要素ではありません。理想的には、iframeが読み込まれた後、オリジナルを空にして、それが所属する場所に戻します。 –

+0

どこでそれを手に入れましたか? OPは、ファイル入力フィールドの値を別のものにコピーする方法を尋ねただけでした。これはできません。 – Esailija

0

私はそれが遅れていることを知っていますが、私は今考え出したのと同じような問題がありました。

ファイル入力を別の場所の現在のファイルを削除した後に新しい場所に移動しました。要素を動かすことで、私のすべてのテストにすべてがそのまま残りました。

$('.inputfield1').change(function() { 
    $('.otherinputfield').remove(); 
    $('#newform').append($(this)); 
}); 
関連する問題