ここでは、要件のユーザーが複数の画像を選択して送信ボタンをクリックすると、値(ファイル)とbase64でエンコードされ、ここで、文字列、選択した画像には細かい作業が、プレスは、あなたが「呼び出しボタンを送信すると、私はこのエラーBase64でエンコードされた画像が送信ボタンで機能しない
$(document).ready(function(){
$("input[name=property_images]").change(function() {
var imgBase64Arr = [];
var files = this.files;
for (var i = 0; i < files.length; i++) {
(function(i){
var FR = new FileReader();
FR.onload = function(e) {
\t \t \t
\t \t \t var res = e.target.result ;
\t \t \t var arr1 = res.split(",");
\t \t \t var property_image = arr1[1] ;
imgBase64Arr.push(property_image);//adding base64 value to array
if(i === files.length -1)//after all files are porcessed
myFunction(imgBase64Arr)
};
FR.readAsDataURL(files[i]);
})(i);
}
});
});
function myFunction(imgBase64Arr){
console.log(imgBase64Arr);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<input type="file" name="property_images" multiple="multiple" />
<input type="button" value="submit" onclick="myFunction()">
あなたは何も渡さずにmyFunctionを呼び出します! imgBase64Arrは未定義なので未定義です。それを修正すると、imgBase64Arrはchangeメソッドで定義されているため、imgBase64Arrの外側で評価することはできません。 – epascarello
関数に引数を指定していません: 'myFunction()'。 'console.log(imgBase64Arr);を実行するとき、' 'imgBase64Arr'は未定義です。 –
onchange私はこのようなmyFunction(imgBase64Arr)のような画像を渡しています。 –