5

如果下拉列表是某个值,我正在尝试获取一些 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>

任何人都可以看到它有什么问题吗?

澄清一下,我知道当我的警报工作时它会进入正确的代码块。它只是禁用按钮不起作用。

亲切的问候,

加雷斯

4

3 回答 3

10

你应该使用

prop('disabled',true)
prop('disabled',false)

如果您使用的是 jQuery 1.6+,那么您应该使用 prop。

阅读更多关于道具

属性通常会影响 DOM 元素的动态状态,而不会更改序列化的 HTML 属性。示例包括输入元素的 value 属性、输入和按钮的 disabled 属性或复选框的 checked 属性。.prop()应该使用方法来设置禁用和检查而不是方法.attr()。该.val()方法应用于获取和设置值。

于 2012-06-14T13:33:06.643 回答
3

你应该使用

.attr('disabled', 'disabled')

禁用控件和

.removeAttr('disabled')

启用它。

http://www.w3schools.com/tags/att_input_disabled.asp

于 2012-06-14T13:22:09.467 回答
0

尝试

 attr('disabled', 'disabled')  

代替

attr("disabled", true);
于 2012-06-14T13:24:25.793 回答