2012-02-21 54 views
0

我一直在与这个问题斗争整天。我希望有人对我有一个答案。我做了一堆搜索,似乎无法找到答案。jquery对话框提交按钮无法控制启用/禁用

我有一个页面上有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问题,它将对话框的内容从表单中提取出来,所以我把它放回到表单中,但是想知道这是否引起我真正的问题:

下拉列表

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

两个:和文本框都被我默认提交按钮为禁用,然后我就降downlist的onchange事件上的文本框的onkeyup调用下面的JavaScript要求我寄过,所以,和事件正确启动,并逐步完成代码;一切似乎都很好,但按钮禁用状态不会改变。

请帮忙。

+1

侧面说明,如果'(按钮&&按钮!= NULL)'是不必要的,如果没有匹配的按钮,这将只是一个空的jQuery对象。但如果你想测试,你应该使用'if(button.length)' – Andrew 2012-02-21 22:31:22

+0

使用你想要的任何方法,你能检查属性是否真的被删除? – Pluckerpluck 2012-02-21 22:31:26

+1

var button = $(“PopupReleaseButton”);'line'是否存在'#'? – 2012-02-21 22:31:49

回答

2

我相信你缺少在这条线的哈希:

变化:

var button = $("PopupReleaseButton"); 

var button = $("#PopupReleaseButton"); 
+0

我是个白痴!我不敢相信我没看见那个,Grrrr ...... – farcrats 2012-02-21 22:52:41

0

首先,我如下会清理一些代码:

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

让我知道如果m请提供任何区别?

如果你突破了代码......它停在button.removeAttr(“disabled”);请?

0

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

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

禁用该按钮。