我目前在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;即使选中部分复选框也是如此。
寻找我面临的这个问题的简单解决方案。
答案 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 - 你为什么不使用交互式格斗?