मेरे पास एक सरल फ़ाइल अपलोड फ़ॉर्म है। जब एक फ़ाइल का चयन किया गया है तो मैं इसे स्वचालित रूप से कैसे सबमिट करूं? मैं नहीं चाहता कि उपयोगकर्ता को सबमिट बटन पर क्लिक करना पड़े।
मेरे पास एक सरल फ़ाइल अपलोड फ़ॉर्म है। जब एक फ़ाइल का चयन किया गया है तो मैं इसे स्वचालित रूप से कैसे सबमिट करूं? मैं नहीं चाहता कि उपयोगकर्ता को सबमिट बटन पर क्लिक करना पड़े।
जवाबों:
आप बस अपनी फ़ाइल इनपुट submitकी onchangeस्थिति में अपने फॉर्म के तरीके को कॉल कर सकते हैं ।
document.getElementById("file").onchange = function() {
document.getElementById("form").submit();
};
Submit()कॉल jQuery submitइवेंट को ट्रिगर करता है, लेकिन अंतर्निहित रूप को फायर नहीं करता है submit()। आप बेशक $('form')[0].submit()jQuery के साथ DOM तत्व को हिट करने के लिए उपयोग कर सकते हैं
fileकिसी भी परिवर्तन पर फ़ॉर्म को स्वचालित रूप से सबमिट करने के लिए -input को बताएं :
<form action="http://example.com">
<input type="file" onchange="form.submit()" />
</form>
यह समाधान इस तरह काम करता है:
onchangeजब भी valueसंशोधित होता है , इनपुट तत्व निम्न स्क्रिप्ट को निष्पादित करता हैform प्रपत्र का संदर्भ, यह इनपुट तत्व का हिस्सा हैsubmit() के रूप में निर्दिष्ट करने के लिए URL के लिए सभी डेटा भेजने के लिए प्रपत्र का कारण बनता है actionइस समाधान के लाभ:
id। यह जीवन को आसान बनाता है, यदि आपके पास एक html पृष्ठ में कई रूप हैं ।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>
onchangeघटना के साथ जावास्क्रिप्ट :
<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>
यह मेरी छवि अपलोड समाधान है, जब उपयोगकर्ता ने फ़ाइल का चयन किया।
HTML हिस्सा:
<form enctype="multipart/form-data" id="img_form" method="post">
<input id="img_input" type="file" name="image" accept="image/*">
</form>
जावास्क्रिप्ट:
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) {}
});
};
Jquery के साथ bellow कोड आज़माएं:
<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 का उपयोग कर रहे हैं उनके लिए एक पूर्ण पृष्ठ सबमिट नहीं किया जा सकता है। इसके बजाय, एक ही onchangeविचार का उपयोग करें कि जावास्क्रिप्ट एक छिपे हुए बटन पर क्लिक करें (जैसे <एस्प: बटन ...) और छिपा हुआ बटन बाकी का ले सकता है। सुनिश्चित करें कि आप display: none;बटन पर कर रहे हैं और नहीं Visible="false"।
एचटीएमएल
<form id="xtarget" action="upload.php">
<input type="file" id="xfilename">
</form>
JAVASCRIPT PURE
<script type="text/javascript">
window.onload = function() {
document.getElementById("xfilename").onchange = function() {
document.getElementById("xtarget").submit();
}
};
</script>
आप इस कोड को कोड की एकल पंक्ति के साथ अपना कोड काम करने के लिए रख सकते हैं
<input type="file" onchange="javascript:this.form.submit()">
यह सबमिट बटन पर क्लिक किए बिना फ़ाइल को सर्वर पर अपलोड करेगा