我的报告包含每行的复选框和一个提交按钮。我想在取消选中所有复选框时禁用按钮。只有在报表上选中至少一个复选框时,才应启用按钮。我尝试通过创建类型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;
答案 0 :(得分:5)
按钮需要一个静态ID才能使用Javascript更好地识别它 - 例如BUTTON1
。
现在,创建一个动态动作。
活动:CHANGE
选择类型:jQuery Selector
jQuery Selector:input.indCheck
只要单击其中一个复选框,就会触发动态动作。
作为动态操作的操作,请选择Execute JavaScript Code
并使用以下代码:
if ($(".indCheck:checked").length == 0) {
$("#BUTTON1").addClass("apex_disabled");
} else {
$("#BUTTON1").removeClass("apex_disabled");
}
这会计算所有选中的复选框。如果金额为零,它将停用该按钮。如果金额至少为1,则会激活按钮。小心按钮的静态ID,它需要匹配。
答案 1 :(得分:1)
我更喜欢使用APEX原生JS API而不是jQuery方法。
apex.item( "P1_ITEM" ).enable();
apex.item( "P1_ITEM" ).disable();