加载页面后,我想(重新)为全局变量赋值。但是,尝试后它不会改变。
html是动态生成的,包含一个select。根据存储在数据库中的车辆ID,可以在生成任何选项时选择它。当车辆改变时,我需要旧的(当前的)车辆ID来关闭它。
<select id="selVehicle">
<option value=""> </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变量?
答案 0 :(得分:1)
问题在这里oldVehicle = $('selVehicle option:selected').val();
由于您使用的是ID,因此您需要将#
传递给ID选择器
oldVehicle = $('#selVehicle option:selected').val();
答案 1 :(得分:1)
您的选择器$('selVehicle option:selected').val();
缺少"#"
元素的ID。
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=""> </option>
<option selected value='1'>9999</option>
<option value='2'>9998</option>
<option value='3'>9997</option>
</select>
&#13;