Saya punya formulir unggah file sederhana. Bagaimana saya membuatnya mengirimkan secara otomatis ketika file telah dipilih? Saya tidak ingin pengguna harus mengklik tombol Kirim.
Saya punya formulir unggah file sederhana. Bagaimana saya membuatnya mengirimkan secara otomatis ketika file telah dipilih? Saya tidak ingin pengguna harus mengklik tombol Kirim.
Jawaban:
Anda bisa memanggil submitmetode formulir Anda onchangejika input file Anda.
document.getElementById("file").onchange = function() {
document.getElementById("form").submit();
};
Submit()panggilan memicu submitacara jQuery , tetapi tidak memadamkan formulir yang mendasarinya submit(). Anda tentu saja dapat menggunakan $('form')[0].submit()untuk menekan elemen DOM dengan jQuery
Katakan saja file-input untuk secara otomatis mengirimkan formulir pada setiap perubahan:
<form action="http://example.com">
<input type="file" onchange="form.submit()" />
</form>
Solusi ini berfungsi seperti ini:
onchangemembuat elemen input menjalankan skrip berikut, setiap kali valuedimodifikasiform referensi formulir, bahwa elemen input ini adalah bagian darisubmit() menyebabkan formulir mengirim semua data ke URL, sebagaimana ditentukan dalam actionKeuntungan dari solusi ini:
ids. Itu membuat hidup lebih mudah, jika Anda memiliki beberapa formulir dalam satu halaman html.Menggunakan jQuery:
$('#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>
JavaScript dengan onchangeacara:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="filename" onchange="javascript:this.form.submit();">
</form>
jQuery
.change()dan .submit():
$('#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>
Ini adalah solusi unggah gambar saya, ketika pengguna memilih file.
Bagian HTML:
<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) {}
});
};
Coba kode di bawah ini dengan jquery:
<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>
Bagi mereka yang menggunakan .NET WebForms, pengiriman satu halaman penuh mungkin tidak diinginkan. Alih-alih, gunakan onchangeide yang sama untuk meminta javascript mengklik tombol tersembunyi (mis. <Asp: Tombol ...) dan tombol tersembunyi dapat mengambil sisanya. Pastikan Anda melakukan display: none;tombol dan tidak Visible="false".
HTML
<form id="xtarget" action="upload.php">
<input type="file" id="xfilename">
</form>
MURNI JAVASCRIPT
<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>
Anda dapat meletakkan kode ini untuk membuat kode Anda bekerja hanya dengan satu baris kode
<input type="file" onchange="javascript:this.form.submit()">
Ini akan mengunggah file di server tanpa mengklik tombol kirim