除非我调试代码,否则Javascript vairables为空

时间:2016-01-06 18:01:01

标签: php jquery ajax

我有一个函数可以进行ajax调用并获取车辆清单。

var car_make_list_target_id = 'car_make';
var make_year_list_select_id = 'years';
var car_model_list_target_id = 'car_model';function get_car_model(){

var car_model_initial_target_html = '<option value="">--Select Model--</option>';
//Grab the chosen value on first select list change
var selectvalue = $('#car_make').val();
alert('first alert ' + selectvalue);
var yearvalue = $('#' + make_year_list_select_id).val();
//Display 'loading' status in the target select list
$('#' + car_model_list_target_id).html('<option value="">Loading Car Models</option>');

if(selectvalue === ""){
    //Display initial prompt in target select if blank value selected
    $('#' + car_model_list_target_id).html(car_model_initial_target_html);
} else{
    //Make AJAX request, using the selected value as the GET
    $.ajax({
        url: 'get_model.php?make=' + selectvalue + '&year=' + yearvalue,
        success: function(output){
            //alert(output);
            $('#' + car_model_list_target_id).html(output);
        },
        error: function(xhr, ajaxOptions, thrownError){
            alert(xhr.status + " " + thrownError);
        }
    });
}

我还有一个php if循环,看看会话isset。现在,如果设置了会话,我想在下拉列表中显示这些值。

if(isset($_SESSION['vehicle_info'])){
    echo '<script>'
    .'$("#states option[value=' . $_SESSION['vehicle_info']['state'] . ']").attr("selected","selected");'
    .'$("#years option[value=' . $_SESSION['vehicle_info']['year'] . ']").attr("selected","selected");'
    . ' $("#years").prop("disabled", false);'
    . ' $("#car_make").prop("disabled", false);'
    . ' $("#car_model").prop("disabled", false);'
    . 'get_car_make();//This works'
    . 'get_car_model();//This does not work unless I debug javascript'
    . '</script>';
}

问题是除非我在以下行的get_car_model中设置断点

var selectvalue = $('#car_make').val();
alert('first alert ' + selectvalue);

var selectvalue是空白的,但如果我离开断点,它将提醒选项的值并正确显示。我在过去的4个小时里一直在打我的脑袋而且我无法弄清楚这一点。这是正常的浏览器行为还是我错过了什么?任何输入都会很棒。

0 个答案:

没有答案