首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AJAX调用后变量丢失值

AJAX调用后变量丢失值
EN

Stack Overflow用户
提问于 2014-04-23 01:36:55
回答 1查看 1.6K关注 0票数 0
代码语言:javascript
复制
// Suggested OFI Submit
$("#submit_suggested_ofi").click(function() {
    var names = $("#sofi_name").val();
    var item = $("#itemid").val();
    var item_type = $("#item_type option:selected").val();
    var notable = new Array();
    $(".notable:checked").each(function() {
        notable.push($(this).attr("id"));
    });
    notable = JSON.stringify(notable);
    var notes = $("#ofi_notes").val();
    var reading = $("#reading_notes").val();
    var aid = $("#auditor").text();
    var name_array = split(names);
    var name;
    for ( var i = 0; i < name_array.length; i++ ) {
        name = name_array[i];
        if (name && item && notes && name.trim().length > 0) {
            var query = "func=check_name&name=" + name;
            console.log("NAME: " + name);
            ajaxRequest(query, function(data) {
                console.log("NAME: " + name);
                data = data.replace(/(\r\n|\n|\r|\s)/gm, "");
                if (data == 1) {
                    if (/^\d+/.test(item)) {
                        var query = "func=submit_sofi&name=" + name + "&item=" + item + "&subtype=" + item_type + "&tags=" + notable + 
                                    "&notes=" + notes + "&reading=" + reading + "&aid=" + aid;
                        console.log(query);
                        ajaxRequest(query, function(data) {
                            successMsg(_("Suggestion Submitted"));
                            if ( i == name_array.length ) {
                                $("#sofi_name, #itemid, #ofi_notes, #reading_notes").val('');
                                $(".notable").prop('checked', false);
                            }
                        });
                    } else {
                        failureMsg(_("Item ID must be numeric"));
                    }  
                } else {   
                    failureMsg(_("Please enter a valid employee"));
                }
            });
        } else {
            failureMsg(_("Please fill out the required fields."));
        }  
    }  
});

在第一次调用ajaxRequest之后,name变量似乎丢失了它的值,如我的控制台输出所示:

代码语言:javascript
复制
NAME: Sean Garrett 
NAME: 
func=submit_sofi&name=&item=165151&subtype=chat&tags=["Policy Violation Issue"]&notes=dfgdffg&reading=dfdfdf&aid=3042

我做错了什么?

代码语言:javascript
复制
function ajaxRequest(query, callback) {
    $.ajax({
        type: "POST",
        url: "process/process.php",
        data: query,
        success: callback,
    });
}
EN

回答 1

Stack Overflow用户

发布于 2014-04-23 01:42:45

function () { }中有var name;。这意味着它是该作用域的局部变量,在函数完成时将丢失,并在再次输入函数时重新重置。

您还可以使用$("#sofi_name, #itemid, #ofi_notes, #reading_notes").val('');来清空#sofi_name字段。当该函数启动时,它使用var names = $("#sofi_name").val();拉取names

因此,您可能正在清空#sofi_name字段,因此name在第二次中变空。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23226504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档