如果下拉列表是某个值,我试图让一些jQuery禁用我的表单上的确认按钮,但它似乎没有工作。
我在这里阅读了很多帖子,尝试了各种不同的方式。
此处是我的代码:
<script>
$(document).ready(function () {
// Handler for .ready() called.
$('#MoveToCompanyId').attr("disabled", true);
$('#DeleteAll').live("click", function () {
if ($(this).attr("value") == "True") {
$('#MoveToCompanyId').attr("disabled", true);
} else {
$('#MoveToCompanyId').attr("disabled", false);
$('#confirm').attr("disabled", true);
$('#MoveToCompanyId').change(function () {
if ($("#MoveToCompanyId option:selected").text() != "---Select Company---") {
$('#confirm').removeAttr("disabled");
alert($("#MoveToCompanyId option:selected").text());
}
else {
$('#confirm').attr("disabled", true);
alert("I should be disabled!");
}
});
}
});
});
</script>
有人能看到任何问题吗?
只是为了澄清,我知道它会进入正确的代码块,因为我的警报正在运行。它只是禁用按钮无法正常工作。
亲切的问候,
加雷
答案 0 :(得分:10)
您应该使用
prop('disabled',true)
prop('disabled',false)
如果您使用的是jQuery 1.6+,那么您应该使用prop。
详细了解prop
属性通常会影响DOM元素的动态状态,而不会更改序列化的HTML属性。示例包括输入元素的value属性,输入和按钮的disabled属性或复选框的checked属性。应使用
.prop()
方法设置已禁用和已检查,而不是.attr()
方法。.val()
方法应该用于获取和设置值。
答案 1 :(得分:3)
您应该使用
.attr('disabled', 'disabled')
禁用控件和
.removeAttr('disabled')
启用它。
答案 2 :(得分:0)
尝试
attr('disabled', 'disabled')
而不是
attr("disabled", true);