我有一个页面使用jQuery加载页面加载时的选项下拉菜单。这部分工作正常。然后,我想要在查询字符串中包含的下拉菜单中设置选定的选项(如果有的话) - 如果没有,则默认它。查询字符串恢复正常,但我无法使所选选项的设置正常工作。在下面的代码中,当我停在“调试器”行并检查Select0时,它是未定义的(在成功加载之后),但是如果我允许代码继续运行,则下拉列表将填充来自ajax调用的数据。我猜测这就是为什么选择的项目没有被设置 - 只是无法弄清楚如何解决它。jQuery从页面加载数据中设置选定的选项
$(document).ready(function() {
$.ajax({
type: "POST",
url: "myPage.aspx/MyWebMethod",
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: "json",
success: function (states) {
var jsonCodes = JSON.parse(states.d);
for (var i in jsonCodes) {
$("#Select0").append(new Option(jsonCodes[i].regionname, jsonCodes[i].region_id));
}
var first = getUrlVars()["region"];
if (first) {
$.fn.GetInventory(1, 10, reg, 'rank', 'asc'); // If there is a querystring use it
$("#Select0 option[text='" + reg + "']").get(0).selected = true;
}
else {
debugger;
var myText = 'United States';
$("#Select0 option[text='" + myText + "']").get(0).selected = true;
$.fn.GetInventory(1, 10, 'United States', 'rank', 'asc'); // If no query string default to USA
}
}
});
之前'你错过井号'#'在所有调用中选择'0'到'$()',但第一个。这是一个错字还是你的问题的原因? – 2012-03-08 20:15:47
你需要纠正你的jquery选择器'$(“#Select0”)'。你错过了#在几个地方 – dhaval 2012-03-08 20:18:13
错字 - 这个错误停止执行(使用散列标签#Select0)。 Microsoft JScript运行时错误:无法设置属性“selected”的值:对象为空或未定义 – 2012-03-08 20:21:57