我知道这个问题已被多次询问和回答,但是这个解决方案都没有适用于这个例子,即使我知道他们应该这样做。也许其他一双眼睛将有助于解决这个问题。
我在设置disabled属性的代码之前和之后放置了警报,这确实设置正确,但元素仍保持禁用状态。
我摘录了重现此问题所需的代码:jsfiddle
这里有一些代码只是为了满足SO规则。
$(function () {
var dbVendor = $("#database-vendor");
$("#uses-db").on("change", function (event) {
event.preventDefault();
dbVendor.prop("disabled", ($(this).val() == "Yes" ? false : true));
});
});
答案 0 :(得分:3)
答案 1 :(得分:0)
请参阅此解决方案
$(function () {
var dbVendor = $("#database-vendor");
$("#uses-db").on("change", function (event) {
event.preventDefault();
dbVendor.selectmenu($(this).val() === 'Yes' ? 'enable' : 'disable');
});
});
答案 2 :(得分:0)
dbVendor.selectmenu(($(this).val() == "Yes" ? "enable" : "disable"))
答案 3 :(得分:-1)
你正在使用jquery mobile wich添加" ui-disabled"元素及其父元素的类
$(function () {
$("#uses-db").on("change", function (event) {
event.preventDefault();
if($(this).val() == "Yes"){
$("#database-vendor").parent().removeClass("ui-disabled");
$("#database-vendor").removeClass("ui-disabled");
$("#database-vendor").removeAttr("disabled");//edited
}
else{
$("#database-vendor").parent().addClass("ui-disabled");
$("#database-vendor").addClass("ui-disabled")
$("#database-vendor").addAttr("disabled");//edited
}
});
});
实际上正在使用代码jsffidle
答案 4 :(得分:-2)
#database-vendor
由jQuery Mobile包含了一个div和一堆JavaScript。更改select的disabled属性并不会导致jQuery Mobile响应并更改其div。
删除jQuery Mobile将使代码正常工作。
如果您希望它与jQuery Mobile一起使用,那么您需要查看jQuery Mobile API以了解如何启用其伪选择元素。