Basit bir dosya yükleme formum var. Bir dosya seçildiğinde dosyayı otomatik olarak nasıl gönderirim? Kullanıcının Gönder düğmesini tıklatmasını istemiyorum.
Basit bir dosya yükleme formum var. Bir dosya seçildiğinde dosyayı otomatik olarak nasıl gönderirim? Kullanıcının Gönder düğmesini tıklatmasını istemiyorum.
Yanıtlar:
Dosya girişiniz durumunda formunuzun submityöntemini çağırabilirsiniz onchange.
document.getElementById("file").onchange = function() {
document.getElementById("form").submit();
};
Submit()çağrı jQuery submitolayını tetikler , ancak alttaki formu tetiklemez submit(). Tabii ki $('form')[0].submit()jQuery ile DOM öğesini vurmak için kullanabilirsiniz
file-İnput'a formu otomatik olarak herhangi bir değişiklikle göndermesini söyleyin :
<form action="http://example.com">
<input type="file" onchange="form.submit()" />
</form>
Bu çözüm şu şekilde çalışır:
onchangene zaman girdi elemanı aşağıdaki komut dosyasını yürütün yapar valuedeğiştirilirform bu girdi öğesinin bir parçası olduğu formu referans alırsubmit() formun URL'de belirtildiği gibi tüm verileri göndermesine neden olur actionBu çözümün avantajları:
idS olmadan çalışır . Bir html sayfasında birkaç formunuz varsa hayatı kolaylaştırır .JQuery kullanma:
$('#file').change(function() {
$('#target').submit();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="target" action="destination.html">
<input type="file" id="file" value="Go" />
</form>
onchangeEtkinliği olan JavaScript :
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="filename" onchange="javascript:this.form.submit();">
</form>
$('#fileInput').change(function() {
$('#myForm').submit();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<form action="upload.php" id="myForm">
<input type="file" id="fileInput">
</form>
<form id="thisForm" enctype='multipart/form-data'>
<input type="file" name="file" id="file">
</form>
<script>
$(document).on('ready', function(){
$('#file').on('change', function(){
$('#thisForm').submit();
});
});
</script>
Kullanıcı dosyayı seçtiğinde bu benim resim yükleme çözümüm.
HTML bölümü:
<form enctype="multipart/form-data" id="img_form" method="post">
<input id="img_input" type="file" name="image" accept="image/*">
</form>
JavaScript:
document.getElementById('img_input').onchange = function () {
upload();
};
function upload() {
var upload = document.getElementById('img_input');
var image = upload.files[0];
$.ajax({
url:"/foo/bar/uploadPic",
type: "POST",
data: new FormData($('#img_form')[0]),
contentType:false,
cache: false,
processData:false,
success:function (msg) {}
});
};
Aşağıdaki kodu jquery ile deneyin:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<script>
$(document).ready(function(){
$('#myForm').on('change', "input#MyFile", function (e) {
e.preventDefault();
$("#myForm").submit();
});
});
</script>
<body>
<div id="content">
<form id="myForm" action="action.php" method="POST" enctype="multipart/form-data">
<input type="file" id="MyFile" value="Upload" />
</form>
</div>
</body>
</html>
.NET WebForms'u kullananlar için tam sayfa gönderme istenmeyebilir. Bunun yerine, onchangejavascript'in gizli bir düğmeyi (ör. <Asp: Button ...) tıklatması ve gizli düğmenin geri kalanını alması için aynı fikri kullanın. Emin bir yapıyorsun olun display: none;butona değil Visible="false".
HTML
<form id="xtarget" action="upload.php">
<input type="file" id="xfilename">
</form>
JAVASCRIPT SAF
<script type="text/javascript">
window.onload = function() {
document.getElementById("xfilename").onchange = function() {
document.getElementById("xtarget").submit();
}
};
</script>
<form action="http://example.com">
<input type="file" onchange="Submit()" />
</form>
<script>
// it will submit form 0 or you have to select particular form
document.getElementsByTagName("form")[0].submit();
</script>
Kodunuzun tek bir kod satırı ile çalışmasını sağlamak için bu kodu koyabilirsiniz
<input type="file" onchange="javascript:this.form.submit()">
Bu, dosyayı gönder düğmesine tıklamadan sunucuya yükleyecektir