javascript问题并设置select的select索引
我有一段代码,根据对另一个下拉列表的选择填充下拉列表。这将通过4个下拉列表进行传播,以便: 选择->基于1的选择->基于1和2的选择->基于1、2和3的选择 我的问题是,有时选择只作为一项出现,这样用户就无法“触发”onchanged事件。因此,在填充时,我希望将所选索引设置为0。很简单,对吧 下面是我的代码(经过编辑以包含完整的javascript函数): 作品->javascript问题并设置select的select索引,javascript,html,Javascript,Html,我有一段代码,根据对另一个下拉列表的选择填充下拉列表。这将通过4个下拉列表进行传播,以便: 选择->基于1的选择->基于1和2的选择->基于1、2和3的选择 我的问题是,有时选择只作为一项出现,这样用户就无法“触发”onchanged事件。因此,在填充时,我希望将所选索引设置为0。很简单,对吧 下面是我的代码(经过编辑以包含完整的javascript函数): 作品-> if (GenericProjectDropDown.selectedIndex == -1) { alert(Gene
if (GenericProjectDropDown.selectedIndex == -1) {
alert(GenericProjectDropDown.selectedIndex);
GenericProjectDropDown.selectedIndex = 0;
}
if (GenericProjectDropDown.selectedIndex == -1) {
GenericProjectDropDown.selectedIndex = 0;
alert(GenericProjectDropDown.selectedIndex);
}
失败->
if (GenericProjectDropDown.selectedIndex == -1) {
GenericProjectDropDown.selectedIndex = 0;
}
解决方案!感谢@charlietfl 我有一些ajax,它在填充下拉列表的前一个代码块中运行,在运行第二个脚本之前没有完成,因为它是异步的。加入:
$.ajax({
url: '/Home/FillProject',
type: "GET",
dataType: "JSON",
async: false, //this line
data: { BusinessArea: BusinessAreaSelection, GenericProject: GenericProjectSelection },
error: function (error) {
alert(error);
},
success: function (Projects) {
$("#ProjectDropDown").html("");
$.each(Projects, function (i, project) {
$("#ProjectDropDown").append(
$('<option></option>').val(project).html(project));
});
$.ajax({
url:“/Home/FillProject”,
键入:“获取”,
数据类型:“JSON”,
async:false,//此行
数据:{BusinessArea:BusinessAreaSelection,GenericProject:GenericProjectSelection},
错误:函数(错误){
警报(错误);
},
成功:职能(项目){
$(“#项目下拉列表”).html(“”);
$。每个(项目、功能(i、项目){
$(“#项目下拉列表”).append(
$('').val(project.html(project));
});
问题解决了!我删除了
jquery
标记,因为它与您的问题完全无关。GenericProjectDropDown.selectedIndex==-1不可能是真的有任何ajax与此相关吗?这听起来像是一个异步操作问题,alert让异步部分finish@Wintermute,如果选择eelement没有选项,其selectedIndex
为-1。但是,当OP尝试执行此操作时,您无法将其更改为0。selectedIndex==-1
在select元素没有选项时发生。遇到此问题时,您可以提供有关您正在执行的操作的更多详细信息吗?您如何不检查是否只有一个选项嗯,你加进去了吗?
$.ajax({
url: '/Home/FillProject',
type: "GET",
dataType: "JSON",
async: false, //this line
data: { BusinessArea: BusinessAreaSelection, GenericProject: GenericProjectSelection },
error: function (error) {
alert(error);
},
success: function (Projects) {
$("#ProjectDropDown").html("");
$.each(Projects, function (i, project) {
$("#ProjectDropDown").append(
$('<option></option>').val(project).html(project));
});