ORACLE APEX:未选中复选框时的警报显示

时间:2018-04-16 07:48:51

标签: javascript oracle-apex

我目前在ORACLE APEX中有一个交互式报告,我使用该报告将许多记录显示为数据库中的行和列。一个这样的列就是复选框。报告中的所有复选框都呈现如下:APEX_ITEM.CHECKBOX2(1,GROUP1.CAM_QER_LINE_GROUP_ID,'UNCHECKED',p_item_id=>'p01_1')

报告中有按钮,例如' 保存'保存对报告中记录所做的更改。

点击“保存”按钮时,对已检查记录所做的所有更改都应成功完成,会弹出警告/消息或类似的 要求用户选中框并保存更改。

我知道有多种方法可以做到这一点。到目前为止我尝试过的方法并没有完全成功,如下所述。

if apex_application.g_f01.count = 0
     then   
        apex_error.add_error (
        p_message          => 'Invalid Customer ID!',
        p_display_location =>  apex_error.c_inline_with_field_and_notif,
        p_page_item_name   => 'P5_CUSTOMER_ID');
     else 
        --- DO THE REST

在上面的方法中,我在单击“保存”按钮<处理后的 PL / SQL过程中使用此代码< / strong>但是我面临的问题是,一旦显示error_message,它就会重新显示点击甚至其他按钮,这样做提交页面/其他处理,这违背了目的。

    if (document.getElementById('p01_1').checked) 
        { alert("checked"); } 
   else
        { alert("Please Check the Box."); }

在上述方法中,问题是 getElementById(&#39; p01_1&#39;)无法识别报告中的每个复选框并且正在投掷警告&#39;请选中方框&#39;即使选中部分复选框也是如此。

寻找我面临的这个问题的简单解决方案。

1 个答案:

答案 0 :(得分:0)

迭代apex_item生成的每个复选框。

//fXX = XX the first parameter of apex_item
var elements = document.getElementsByName('f01');

for(var i = 0; i < elements.length; i++) { 
    if(!elements[i].checked) {
        alert(elements[i] + ' not checked'); 
    }
}

1 - 如果选中所有复选框,为什么要使用呢?

2 - 你为什么不使用交互式格斗?