试图将ajax响应存储到隐藏的输入中?

时间:2016-06-21 07:40:07

标签: javascript jquery html ajax

我试图设置隐藏的输入值,但它返回null或0。

        function addbettrack(odd){
            if($(".leagues_arr").val()!='0' && $('.games_arr').val()!='0' && $('.bet_type').val()!='0' && $('.book').val()!='0' 
&& $('.bet_venue').val()!='0'){
                if(odd=='undefined') odd=0.00;
                var datetime = $(".games_arr").children(":selected").data('value').DateTime;
                var league = $(".leagues_arr").val();
                var hometeam = $(".games_arr").children(":selected").data('value').HomeTeam;
                var awayteam = $(".games_arr").children(":selected").data('value').AwayTeam;
                var eventname = $(".games_arr").children(":selected").data('value').EventName;
                var bettype = $(".bet_type").val();
                var book = $('.book').children(":selected").data('book');
                var bookid = $('.book').val();
                var bet = $(".bet_venue").val();
                //var odd = $(".odds").val();
                var stake = 1;
                var marked = '';
                if (bet == "Visitor") {
                    marked = 'A';
                } else if (bet == "Host") {
                    marked = 'H';
                } else {
                    marked = '';
                }
                var source = 'bettrack';
                var id = $('.hidden_id').val();
                var mode = "insert";
                if(id > 0){
                    mode = "edit";
                }
                console.log(id + " " + mode);
                console.log(datetime + " " + league + " " + hometeam + " " + awayteam + " " + eventname + " " + bettype + " " + bet + " " + odd + " " + stake);
                $.ajax({
                    type: "POST",
                    url: '/index.php?/bettrack/insert_bettip/'+id,
                    data: { 
                        DateTime: datetime,
                        LeagueName: league,
                        HomeTeam: hometeam,
                        AwayTeam: awayteam,
                        EventName: eventname,
                        BetType: bettype,
                        Bet: bet,
                        Book: book,
                        BookID: bookid,
                        Odd: odd,
                        Stake: stake,
                        Marked: marked,
                        Source: source,
                        Id : id,
                        Mode : mode
                    },
                    dataType:"json", 
                    success: function(data) { 
                        console.log(data);
                        $('.hidden_id').attr('value',data.odd);
                        $('.hidden_id').val(data.odd);
                        alert($('.hidden_id').val()); //here returns nothing
                    },
                    error: function(xhr, textStatus, error) {
                        console.log(xhr.statusText);
                        console.log(textStatus);
                        console.log(error);
                    }
                });

            }           
        }

此函数在其他函数和ajax请求中运行:

function get_bettrack(eventname, bettype, betvenue, book, mode = "a", id = 0) {
    console.log(eventname+" "+bettype+" "+betvenue + " " + book);
    $.ajax({
        type: "POST",
        url: '/index.php?/bettrack/get_odds',
        data: {
            EventName: eventname,
            BetType: bettype,
            BetVenue: betvenue,
            Book: book
        },
        dataType: 'json',
        success: function(data) {
            if (mode == "a") {
                console.log(data.odd);
                $(".odds").val(data.odd);
                var stake = 1;
                var towin = parseFloat(data.odd) * parseFloat(stake);
                $(".towin").html(towin);
                addbettrack(data.odd); //HEREEE <=====================
            } else {
                $(".myodd" + id).val(data.odd);
                var stake = 1;
                var towin = parseFloat(data.odd) * parseFloat(stake);
                $(".towin" + id).html(towin);
            }
        },
        error: function(xhr, textStatus, error) {
            console.log(xhr.statusText);
            console.log(textStatus);
            console.log(error);
        }
    });
}

并且get_bettrack函数在ajax成功中的事件内运行:

   $('.games_arr').change(function() {
        var date = $(this).children(":selected").data('value').DateT;
        var label = date;
        $(".game_date").html(label);
        if ($('.leagues_arr').val() != '0') {
            $(".bet_type").val("ToWin"); 
            $(".bet_venue").val("Host");                    
            var eventname = $(".games_arr").children(":selected").data('value').EventName;
            var betvenue = $(".bet_venue").val();
            var bettype = $(".bet_type").val();
            var book = $(".book").children(':selected').data('book');
            load_book(eventname, bettype);
            get_bettrack(eventname, bettype, betvenue, book);
        }
    });



   <input type="hidden" class="hidden_id" value="0" />

0 个答案:

没有答案