簡體   English   中英

根據復選框oracle apex禁用或啟用按鈕

[英]Disabling or enabling a button depending on checkboxes oracle apex

我有一份報告,每行都有一個復選框,並且有一個提交按鈕。 當所有復選框都未選中時,我想禁用按鈕。 僅當在報表上至少選中一個復選框時,才應啟用按鈕。 我試圖通過創建啟用/禁用類型的動態動作來做到這一點。 如果未選中任何復選框,則該按鈕將被禁用,但是如果至少有一個復選框,則該按鈕仍將被禁用。 我也嘗試使用javascript來解決這個問題,但是由於我對js的了解不足,我無法完成任務。 我嘗試過的代碼如下:

$("input[type='submit']").prop('disabled',true);
if ( $(this.triggeringElement).is(':checked') )
    $("input[type='submit']").prop('disabled',true);

///

if ($('input[type='checkbox']:checked').length > 0 && $("input[type='submit']").is(':disabled')) {
    $("input[type='submit']").removeAttr('disabled')
} else if ($('input[type='checkbox']:checked').length == 0) {
    $("input[type='submit']").attr('disabled', true)
}

報告查詢:

SELECT  APEX_ITEM.CHECKBOX2(1,URUN.BARKOD, 'class=indCheck') "Select", U.AD, MA.AD MAGAZA_ADI, FIYAT, APEX_ITEM.SELECT_LIST(
        p_idx           =>   2,
        p_list_values   =>   '1;1,2;2,3;3,4;4,5;5,6;6,7;7,8;8,9;9,10;10',
        p_show_null     =>   'YES',
        p_null_value    =>   NULL,
        p_null_text     =>   '-0-',
        p_item_id       =>   'indSelect') "Adet"
FROM URUNSATIS URUN, UYE UN, ADRES AD, ANLASMALAR AN, MAGAZA MA, URUN U
WHERE UN.USERNAME = :SESSION_USER_NAME AND UN.ID = AD.UYE_ID AND AD.APARTMAN_ID = AN.APARTMAN_ID AND AN.MAGAZA_ID = URUN.MAGAZA_ID AND MA.ID = URUN.MAGAZA_ID AND U.BARKOD=URUN.BARKOD
ORDER BY 1;

您將需要一個靜態ID作為按鈕,以便使用Java BUTTON1更好地識別它-例如BUTTON1

現在,創建一個動態動作。

事件: CHANGE

選擇類型: jQuery Selector

jQuery選擇器: input.indCheck

只要單擊其中一個復選框,這將觸發動態動作。 作為動態動作的動作,選擇Execute JavaScript Code並使用以下代碼:

if ($(".indCheck:checked").length == 0) {
    $("#BUTTON1").addClass("apex_disabled");
} else {
    $("#BUTTON1").removeClass("apex_disabled");
}

這將計算所有選中的復選框。 如果數量為零,它將停用該按鈕。 如果數量至少為一,它將激活該按鈕。 請注意按鈕的靜態ID,它需要匹配。

我更喜歡使用APEX原生JS API而不是jQuery方法。

apex.item( "P1_ITEM" ).enable();
apex.item( "P1_ITEM" ).disable();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM