0
var casualDays;
var days;

  $(document).ready(function(){

    $(function(){
        $('select, input').styledSelect();
    });

    $(function (){
    var usernameSelected = $("input#Employee_UserName" ).val().toString();
    var username;
    $.ajax({
        url: '@Url.Action("GetLeaveConsumedDays", "ApplyLeave")',
        type: 'POST',

        data: { username: usernameSelected },

        success: function (results) {
           days=results;
        }, 
        error: function () {
            alert("error");
        }
    });
    });
    $(function (){
    var usernameSelected = $("input#Employee_UserName" ).val().toString();
    var username;
    $.ajax({
        url:'@Url.Action("GetLeaveConsumedDaysCasual", "ApplyLeave")',
        type: 'POST',

        data: { username: usernameSelected },

        success: function (results) {
           casualDays=results;
        }, 
        error: function () {
            alert("error");
        }
    });
    });

K

これは私のdocument.readyイベントです。ページを実行した後、その作業は2、3回正しく行われますが、数回実行すると正しく機能しません。「days」と「casualdays」の値が表示されないため、エラーが発生します。更新後もう一度2、3回その仕事。その理由は何なのかわからない。誰か助けてください。

4

1 に答える 1

3

Ajax は非同期です。アクセスするには、リクエストが完了するまで待つ必要がdaysありますcasualdays

var foo; 
alert(foo); // undefined 1

$.ajax({ 
    url: "foo.php", 
    success: function(data){
        foo = data // foo now equals data
        alert(foo); // NOT undefined! 3
    }
});

alert(foo); // still undefined 2
于 2012-10-22T18:21:11.707 に答える