Javascript 我不能启用选择

Javascript 我不能启用选择,javascript,jquery,html,web,Javascript,Jquery,Html,Web,嗨,我有一个方法来禁用选择: function setPersons(adultos){ document.getElementById("perselect").value = adultos; document.getElementById("perselect").disabled = true; } 当我加载我的网站时,它被调用。这项工作没有问题 我的问题是,当我试图在表单中使用按钮再次启用它时 这是按钮代码: <button class="button-big

嗨,我有一个方法来禁用选择:

function setPersons(adultos){
    document.getElementById("perselect").value = adultos; 
    document.getElementById("perselect").disabled = true;
}
当我加载我的网站时,它被调用。这项工作没有问题

我的问题是,当我试图在表单中使用按钮再次启用它时

这是按钮代码:

<button class="button-big" name="disp" value="clean" id="save" type="button">Limpiar fecha</button>
加载页面时,select将被禁用,但如果我按下按钮,将调用
click
事件(我会在其中放置一个警报以检查它),但select始终处于禁用状态


可能发生什么情况?

select
控件上将disabled属性设置为
false
,实际上不会重新启用该控件。当
disabled
属性被完全删除时,大多数浏览器将重新启用控件:

$(文档).ready(函数(){
document.getElementById(“组合框”).disabled=true;
});
$(“#btn启用”)。在('单击',函数()上{
document.getElementById(“组合框”).removeAttribute(“禁用”);
});

使可能
1.
2.
3.

select
控件上将disabled属性设置为
false
,实际上不会重新启用该控件。当
disabled
属性被完全删除时,大多数浏览器将重新启用控件:

$(文档).ready(函数(){
document.getElementById(“组合框”).disabled=true;
});
$(“#btn启用”)。在('单击',函数()上{
document.getElementById(“组合框”).removeAttribute(“禁用”);
});

使可能
1.
2.
3.
“Disabled”是一个布尔属性

元素上存在布尔属性表示真值,不存在该属性表示假值

为了进一步说明,将元素dot Disabled设置为true是错误的

$(文档).ready(函数(){
document.getElementById(“组合框”).setAttribute(“已禁用”);
});
$(“#btn启用”)。在('单击',函数()上{
document.getElementById(“组合框”).removeAttribute(“禁用”);
});

abc
123
请注意标记中存在“disabled”属性

def 456 请注意,标记中不存在“disabled”属性

您的代码片段:
ghi 7890 如果布尔属性存在于元素上,则不管其实际值如何,它们都被认为是真的;通常,在使用元素dot setAttribute时,应在值(非null)中指定空字符串(“”)
启用它按钮“禁用”是一个布尔属性

元素上存在布尔属性表示真值,不存在该属性表示假值

为了进一步说明,将元素dot Disabled设置为true是错误的

$(文档).ready(函数(){
document.getElementById(“组合框”).setAttribute(“已禁用”);
});
$(“#btn启用”)。在('单击',函数()上{
document.getElementById(“组合框”).removeAttribute(“禁用”);
});

abc
123
请注意标记中存在“disabled”属性

def 456 请注意,标记中不存在“disabled”属性

您的代码片段:
ghi 7890 如果布尔属性存在于元素上,则不管其实际值如何,它们都被认为是真的;通常,在使用元素dot setAttribute时,应在值(非null)中指定空字符串(“”)


启用它按钮
您不会碰巧在html中重复
perselect
niselect
id,是吗?是否有另一个id相同的id可能重复
console.log($(“#perselect”).length)
@esqew他们正在更改此处的属性,而不是attribute@esqew我想这取决于浏览器/十年。。。(好的,你的链接是5年前的,而不是10年前的)-试试看:你不会碰巧在html中重复
perselect
niselect
id,是吗?是否有另一个id相同的id可能重复
console.log($(“#perselect”).length)
@esqew他们正在更改此处的属性,而不是attribute@esqew我想这取决于浏览器/十年。。。(好吧,你的链接是5年前的,不是10年前的)-试试看:在jQuery事件处理程序中使用原生JS方法有点奇怪。特别是当
prop('disabled',true | false)
可以工作时。在您的回答文档中。getElementById(“combobox”)。disabled=true;对于setI来说是不正确的。我尝试了这个例子,并使用了“prop('disabled',false)”。不要工作。我不知道为什么,在其他情况下,这对我来说是可行的。在jQuery事件处理程序中使用本机JS方法有点奇怪。特别是当
prop('disabled',true | false)
可以工作时。在您的回答文档中。getElementById(“combobox”)。disabled=true;对于setI来说是不正确的。我尝试了这个例子,并使用了“prop('disabled',false)”。不要工作。我不知道为什么,在其他情况下,这对我是有效的。@Abraham为什么不试试这个代码片段呢?它有一个有效的例子-如果有什么东西不起作用,你能解释一下什么东西不起作用吗?-我刚才看到您回复了上面的一个答案-如果您阅读了我在代码段中的注释-“您应该在值中指定空字符串(“”)(NOTNULL not false)”-因为您给出的值被解析为字符串。我看到代码段工作正常。我将代码更改为添加以下内容:$(document.ready(function(){document.getElementById(“combobox”).setAttribute(“disabled”,”;})$(#btn enable”).on('click',function(){document.getElementById(“组合框”).removeAttribute(“disabled”);)。使用Correct id等更改它,但没有任何更改。选择已禁用,但从未启用。我不知道为什么我的代码不起作用。谢谢您在控制台上看到任何错误吗?我想验证你是否有任何重复的ID或其他东西。我检查了所有代码,控制台是干净的,只有一个元素有这个ID。这是奇怪的。。。我不知道为什么会发生这种情况。您可以检查标记中的ID不能包含#-我想您的单击函数没有被调用
$('#save').on('click', function(e) {
    document.getElementById("perselect").disabled=false;
    document.getElementById("ninselect").disabled=false;                    
});