Javascript 基于另一个选择(dropdownlist)值更改禁用的选择(dropdownlist)

Javascript 基于另一个选择(dropdownlist)值更改禁用的选择(dropdownlist),javascript,jquery,html-select,Javascript,Jquery,Html Select,基本上,我想做的是在标题中不言自明。下面是一段代码,它启用了下拉/选择,因此可以通过客户端对其进行更改,但更改后不会禁用: function setLocVals(passedVal) { $('#DropDownList1').removeAttr("disabled"); $('#DropDownList1').val(passedVal); $('#Dr

基本上,我想做的是在标题中不言自明。下面是一段代码,它启用了下拉/选择,因此可以通过客户端对其进行更改,但更改后不会禁用:

function setLocVals(passedVal) {

                $('#DropDownList1').removeAttr("disabled");                    
                $('#DropDownList1').val(passedVal);
                $('#DropDownList1'').attr("disabled", "disabled");
}
这可能吗?还是我完全错误地看待这件事?
我可以改成文本框,但这是一个包含美国各州的下拉列表。如果用户有记录,则限制用户选择,如果不存在记录,则用户可以选择

必须禁用时,只需设置一个条件即可。看到这个了吗

使用这种方法

首先在选项中设置值

然后检索选项的当前值,并检查它是否设置为超出您已通过的值,然后将条件设置为禁用else not

 function setLocVals(passedVal) {


            $('#DropDownList1').val(passedVal);

             var value = $('#DropDownList1').val();
             if(value == passedVal){
                    $('#DropDownList1').attr("disabled", "disabled");
                }
        }

当您
removeAttr()
时,该属性不再存在。相反,您希望使用
.prop('disabled',false)
.prop('disabled',true)
非常确定,您不需要为了通过JS更改所选选项而弄乱
disabled
属性。由于您引用的链接是一个输入复选框,因此可能会重复,而不是重复。这是一个select和一个select命令。@Ohgodwhy以您列出的方式使用.prop进行测试。。。相同的结果…没有解决这样一个事实,即如果控件/元素被禁用,则无法从客户端更改下拉列表的值。Dropdownlist以禁用开始,值将被更改为启用,然后在值更改后再次禁用。但正如您所说,如果值存在,则必须禁用该值,以便用户无法更改该值,如果值不存在,则应启用该值以供用户更改否,我可能误解了这一点。我只是在“有记录”的情况下工作。我规定了这两种情况,因为我不想有人回答“为什么不使用文本框呢?”有两个下拉列表,一个启用,一个禁用-我需要根据第一个下拉列表选择更改第二个下拉列表,并且下拉列表需要保持禁用状态。我希望这更清楚。我很抱歉在最初的帖子中混淆了这个问题。请查看更新后的帖子,让我知道这是否有效,以便我可以用正确的解决方案更新答案。这就是我正在寻找的行为,但我在代码中尝试了类似的方法。我试着将代码实现到我自己的代码中,但它就是做不到。我把它数据绑定,然后我尝试静态。我确实使用了一个javascript对象,但所有其他值都被很好地弹出(即使它们是文本框)。也许我应该把它变成一个文本框。我很惊讶为什么它在禁用时不会改变,但在启用时会改变。。。。