Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript问题并设置select的select索引_Javascript_Html - Fatal编程技术网

javascript问题并设置select的select索引

javascript问题并设置select的select索引,javascript,html,Javascript,Html,我有一段代码,根据对另一个下拉列表的选择填充下拉列表。这将通过4个下拉列表进行传播,以便: 选择->基于1的选择->基于1和2的选择->基于1、2和3的选择 我的问题是,有时选择只作为一项出现,这样用户就无法“触发”onchanged事件。因此,在填充时,我希望将所选索引设置为0。很简单,对吧 下面是我的代码(经过编辑以包含完整的javascript函数): 作品-> if (GenericProjectDropDown.selectedIndex == -1) { alert(Gene

我有一段代码,根据对另一个下拉列表的选择填充下拉列表。这将通过4个下拉列表进行传播,以便:

选择->基于1的选择->基于1和2的选择->基于1、2和3的选择

我的问题是,有时选择只作为一项出现,这样用户就无法“触发”onchanged事件。因此,在填充时,我希望将所选索引设置为0。很简单,对吧

下面是我的代码(经过编辑以包含完整的javascript函数):

作品->

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));
        });