为全局变量赋值

时间:2017-07-28 14:56:29

标签: javascript jquery

加载页面后,我想(重新)为全局变量赋值。但是,尝试后它不会改变。

html是动态生成的,包含一个select。根据存储在数据库中的车辆ID,可以在生成任何选项时选择它。当车辆改变时,我需要旧的(当前的)车辆ID来关闭它。

<select id="selVehicle">
    <option value="">&nbsp;</option>
    <option selected value='1'>9999</option>
    <option value='2'>9998</option>
    <option value='3'>9997</option>
</select>

在我的.js文件中,我在document.ready()之前声明了全局变量:

var oldVehicle = -1;
$(document).ready(function () {
    $(":text").on("blur", function () {
        var tmp = ($(this).val());
        ($(this).val(tmp.toUpperCase()));
    });

    //lots more onblurs and onchanges//

    setOldVehicle();
});

function setOldVehicle() {
    oldVehicle = $('selVehicle option:selected').val();
    alert(oldVehicle);
}

当我运行它时,警报仍然显示“-1”。如何在加载页面后更新oldVehicle变量?

2 个答案:

答案 0 :(得分:1)

问题在这里oldVehicle = $('selVehicle option:selected').val();

由于您使用的是ID,因此您需要将#传递给ID选择器

oldVehicle = $('#selVehicle option:selected').val();

答案 1 :(得分:1)

您的选择器$('selVehicle option:selected').val();缺少"#"元素的ID。

&#13;
&#13;
var oldVehicle = -1;
$(document).ready(function() {
  $(":text").on("blur", function() {
    var tmp = ($(this).val());
    ($(this).val(tmp.toUpperCase()));
  });

  //lots more onblurs and onchanges//
  setOldVehicle();
});

function setOldVehicle() {
  oldVehicle = $('#selVehicle option:selected').val();
  alert(oldVehicle);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="selVehicle">
    <option value="">&nbsp;</option>
    <option selected value='1'>9999</option>
    <option value='2'>9998</option>
    <option value='3'>9997</option>
</select>
&#13;
&#13;
&#13;