顶点的动态验证3.2

时间:2012-12-01 11:54:35

标签: javascript oracle-apex

我在APEX 3.2中有不同的字段,保证金是根据用户输入的值计算的。如何验证保证金?例如假设保证金小于零,用户应该在点击按钮时弹出警告。

1 个答案:

答案 0 :(得分:0)

另见这个问题:APEX 3.2 (Oracle): on change of an item dynamically populates the values of other items on the page
我不是3.2巫师,但我会尽力帮忙。

创建一个名为'calculate_margin'的应用程序进程

DECLARE
   lMargin NUMBER;
BEGIN
   lMargin := :P8_ITEM1 + :P8_ITEM2 + :P8_ITEM3;

   IF lMargin < 0 THEN
      htp.p('{"result":"nok", "message":"margin is less than zero!"}');
   ELSE
      htp.p('{"result":"ok", "message":"margin is ok"}');
   END IF;      
END;

将此javascript代码放在您的页面上。如果您没有javascript部分,请将其放在<script type="text/javascript"></script>标记之间。

function checkMargin(){
   $.post('wwv_flow.show', 
          {"p_request"      : "APPLICATION_PROCESS=calculate_margin",
           "p_flow_id"      : $v('pFlowId'),
           "p_flow_step_id" : '0',
           "p_instance"     : $v('pInstance'),
           "p_arg_names"    : ['P8_ITEM1','P8_ITEM2','P8_ITEM3'],
           "p_arg_values"   : [$('#P8_ITEM1').val(),$('#P8_ITEM2').val(),$('#P8_ITEM3').val()]},
           function(data){
              if(data){
                 var lReturn = $.parseJSON(data);
                 if(lReturn.result=='ok'){
                    //you could do something here 
                 } else {
                    alert(lReturn.message);
                 };
              };
           }
   );
};

现在按下按钮。如果这是您在apex中定义的按钮,请将其更改为指向URL,并在URL中输入:

javascript:checkMargin();