jquery对话框提交按钮无法控制启用/禁用

时间:2012-02-21 22:26:46

标签: javascript jquery dialog

我整天都在和这个问题作斗争。我希望有人能给我一个答案。我做了很多搜索,似乎无法找到答案。

我有一个页面上有3个表单。我在第二种形式下工作。没有任何表格嵌入另一种表格中。

我有一个隐藏的div,它包含两个表单元素,一个下拉列表和一个文本框,以及一个提交按钮,我预计它会发布到它所包含的表单中。在表单内的另一个按钮上(不提交按钮),我有javascript启动jquery.Dialog,该代码如下所示:

function showReleaseDiv() {
    var div = $("#ReleaseHoldsDiv");
    var f = div.closest("form");
    div.dialog({ width: 270, height: 187, modal: true, title: 'Bulk Hold Resolution' });
    div.parent().appendTo(f);
}

这部分功能正常。我已经克服了典型的jquery问题,它将对话框的内容从表单中拉出来,所以我把它放回到表单中,但是想知道这是否会导致我的真正问题:

在我发布之前,下拉列表和文本框都是必需的,所以我默认提交按钮被禁用,然后我在下拉列表中有一个onchange事件,文本框上的onkeyup调用以下javascript:< / p>

function enablePopupRelease() {
    var button = $("PopupReleaseButton");
    if (button && button != null) {
        button.attr("disabled", "disabled");
        if ($("#ResolutionTypeCode").val() != "" && $("#ResolutionComments").val() != "") {
            button.removeAttr("disabled");
        }
    }
    return true;
}

两个事件都正确触发,我逐步完成代码;一切似乎都很好,但按钮禁用状态不会改变。

请帮忙。

4 个答案:

答案 0 :(得分:2)

我相信你错过了这一行的哈希:

变化:

var button = $("PopupReleaseButton");

var button = $("#PopupReleaseButton");

答案 1 :(得分:0)

首先我会按如下方式清理一些代码:

function enablePopupRelease() {     var button = $("PopupReleaseButton");     if (button) {         button.attr("disabled", "disabled");         if ($("#ResolutionTypeCode").val() && $("#ResolutionComments").val()) {             button.removeAttr("disabled");         }     }     return true; } 

请告诉我是否有任何不同?

如果你突破代码......是否停在button.removeAttr(“禁用”);请?

答案 2 :(得分:0)

您是否在表单的提交按钮中使用jQuery UI按钮小部件?如果是这样,您需要致电

$("#PopupReleaseButton").button({disabled: true});

禁用按钮。

答案 3 :(得分:0)

disabled不是属性,而是属性 - 请尝试使用button.prop('disabled',true)button.prop('disabled',false)

http://api.jquery.com/prop/