gpt4 book ai didi

javascript - 变量不重新定义jquery

转载 作者:行者123 更新时间:2023-11-28 18:48:35 24 4
gpt4 key购买 nike

所以,我用 jQuery 创建了我的第一个函数。现在我在函数中重新定义变量时遇到问题。

fileValid 没有定义我需要的内容。正如您在我的 ajax 调用中看到的,if(result=="true"){fileValid = false; }其他{ fileValid = true;}。这里 fileValid 没有被重新定义并保持默认值。

这是我的代码:

(function( $ ) {
$.fn.checkFile = function(file){

var fileValid = true;

var form_data = new FormData();
form_data.append("op", "235353")
form_data.append("file", file);

$.ajax({
url:"ajax/scripts/message.php?w=<?php echo $workspace_id?>",
type:"POST",
data:form_data,
contentType: false,
processData:false,
success:function(data){
var result = $.trim(data);
if(result=="true"){fileValid = false; }else{ fileValid = true;}
}
});

return fileValid;
}
}( jQuery ));

最佳答案

Ajax 是异步的,因此您不能像那样返回其结果。使用回调:

$.fn.checkFile = function(file, complete){
...
success: function(data){
var result = $.trim(data);
complete(result=="true" ? true : false);
});

或者甚至:

$.fn.checkFile = function(file, valid, invalid){
...
success: function(data){
var result = $.trim(data);
if (result=="true") { valid(); } else { invalid(); }
});

现在,如果您有一个全局变量fileValid,您可以像这样重新定义它:

$(...).checkFile("myFile", function() {
fileValid = true;
});

关于javascript - 变量不重新定义jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34905512/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com