我正在尝试在 beforeSend
处进行数据验证。此数据验证应返回 true 或 false。从异步 filereader.onloadend
如果为 false,则该函数不应继续。但使用下面的代码,它实际上会进行POST
。
var checkValidity = function(data, callback){
const filereader = new FileReader()
filereader.onloadend = function(e) {
callback(e); // I want to do validation on data received here
}
};
$('#imageField').on('change', function(e) {
var formData = new FormData();
$.ajax({
data: formData,
type: 'POST',
beforeSend: function() {
var data = formData.getAll('inputField');
checkValidity(data, function(e){
// if console.log(e) here, actually return expected value
// I'm trying to return false/true here
e ? return true : return false
});
}
});
});
最佳答案
验证成功后才调用ajax
var checkValidity = function(data, callback) {
const filereader = new FileReader()
filereader.onloadend = function(e) {
callback(e); // I want to do validation on data received here
}
};
$('#imageField').on('change', function(e) {
var formData = new FormData();
var data = formData.getAll('inputField');
checkValidity(data, function(e) {
e ?
return true: return false
});
If(conditionToCheckIfValid) {
$.ajax({
data: formData,
type: 'POST',
// rest of the code
});
}
});
关于javascript - 如何使用从异步函数接收的数据在 Ajax 调用中返回 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48256696/