2012-02-21 121 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}); 

禁用該按鈕。