根据复选框 oracle apex 禁用或启用按钮

Disabling or enabling a button depending on checkboxes oracle apex

我有一份报告,每行都有复选框和一个提交按钮。当所有复选框都未选中时,我想禁用按钮。只有在报告中至少选中一个复选框时,才应启用按钮。我试图通过创建 enable/disable 类型的动态操作来做到这一点。当没有复选框被选中时,按钮被禁用,但当至少有一个复选框时,按钮仍然被禁用。我也尝试 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,以便使用 Javascript 更好地识别它 - 例如 BUTTON1

现在,创建一个动态动作。

事件:CHANGE

选择类型:jQuery Selector

jQuery 选择器:input.indCheck

只要单击其中一个复选框,就会触发动态操作。 作为动态动作的Action,选择Execute JavaScript Code并使用以下代码:

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

这将计算所有选中的复选框。如果金额为零,它将停用该按钮。如果金额至少为 1,它将激活按钮。注意按钮的静态 ID,它需要匹配。

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

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