2015-04-18 15 views
6

'a ayarlayın Web sitesi 2 giriş alanına sahiptir, sadece 1 alanı seçiyorum ve diğeri görünmez. Şimdi, görünmeyen olanın .val() 'ini, seçili olanın .val()' e değiştirmek istiyorum, böylece her iki alan da aynı dosyayı yükler. Bu nasıl çalışıyor?jQuery, Giriş FILE öğesini seçin ve başka bir INPUT

Eğer bunu yaparsam: Yakalanmayan InvalidStateError:

$('#input_file').change(function() { 
     var fileSelect = $(this).val(); 
     $('#hidden_input_file"]').val(fileSelect); 
     console.log(fileSelect); 
    }); 

bu hatayı alıyorum üzerine 'değer' özelliğini ayarlanamadı 'HTMLInputElement': Bu giriş elemanı yalnızca programlı olabilir bir dosya adı, kabul boş dizeye ayarla.

+0

... Btw, neden iki giriş alanları aynı dosyayı yüklemek isteyeyim web'de JavaScript için geçerlidir? –

cevap

22

Kodunuz neredeyse doğrudur:

$('#hidden_input_file').val(fileSelect); 

Bu jQuery bir girişin değerini değiştirmek yapacaktır. Bununla birlikte, input type="file"'undeğeri asla JavaScript ile değiştirilemez (ne Flash, ne de programsal olarak herhangi bir şekilde). Bir olacağını kullanıcının bilgisayarına yüklenen edilecek bir URL dosyasının proğramsal değişikliği etkinleştirilmesi

$('#hidden_input_file').on('blur', function (e) { 
    $('#hidden_input_file').val('c:\passwords.txt'); // won't work 
}); 

: Bu önemsiz bir mischievery web sitelerini engellemek için tüm son kullanıcı tarayıcılarda uygulanan bir güvenlik özelliğidir monstrous güvenlik sorunu.

* Yalnızca .... ben dinamik dosya alanın değerini değiştirebilir sanmıyorum

+1

Sadece diğer alanı görünür hale getirdim .. – Maxi

İlgili konular