Oracle APEX | Validating a Row by Row Tabular Form

I have a tabular form for adding order details for an order,

The tabular form has Popup LOVwith this custom attribute:

onchange="javascript:do_cascade(this);"

here is the code of the last function

        function do_cascade(pThis)
    {

        var row_id=pThis.id.substr(4);
        apex.server.process("cascade_order_values", { x02: $(pThis).val()},
                           {type:"GET", dataType:"json", success:function(json)
                                                { 
                                                    var cond=0;
    // this var as flag changes to 1 when the new value found in tabular form.
                                                    var l_code=$(pThis).val();
    // to catch selected value to compare it with tabular form values
                                                    for (i =row_id;i>0;i=i-1)
    // this loop in order to check all tabluar form #f02_ column values
                                                        {
                                                           var id=('000'+i);//.slice(-4,0);
                                                           var curr_id='#f02_'+id;
                                                           var curr_code=$(curr_id).val();
                                                            if(curr_code==l_code)
                                                                {
                                                                    $('#f05_'+id).val('got it');
                                                                    $('#f05_'+id).focus();
                                                                   // i=0; cond=1;
                                                                } else cond=0;
                                                        }
                                                    if (cond==0) 
                                                    {
                                                        $('#f06_'+row_id).val(json.price);
                                                        $('#f04_'+row_id).val(json.pro_name);   
                                                    }
    else {
 // I want to write something here to delete the new added row
         }
                                                }
                             }
                           );
    }

what the last function will do in the near future: when the selected change in the Popup LOV value causes the process of calling the application to request and return some data and set them in the fields of the tabular form, and this is done correctly. here is the application process than this functional process:

    declare
    price number;
    pro_code nvarchar2(20):=null;
    pro_name nvarchar2(50);

begin
    pro_code:=apex_application.g_x02;

    SELECT nvl(sell_price,0) into price from products where product_code=pro_code;

    SELECT C.CAT_NAME || ' - ' || U.UNIT_NAME into pro_name 
        FROM PRODUCTS P , CATEGORIES C, UNITS U
        WHERE P.CAT_ID=C.CAT_ID AND P.UNIT_ID=U.UNIT_ID AND P.PRODUCT_CODE=pro_code;

    sys.htp.p('{"price":"'||price||'", "pro_name":"'||pro_name||'","code":"'||pro_code||'"}');
EXCEPTION 
    WHEN others 
        THEN
            pro_name:='Ψ§Ω„Ψ±Ω‚Ω… غير ءحيح';
            sys.htp.p('{"price":"'||0||'", "pro_name":"'||pro_name||'","code":"'||pro_code||'"}');
end;

PROBLEM:

I want to check if the selected product code exists in a tabular form that mean check tabular form row by row from current row to the first one , when the selected value moves the focus to the element #f05_and sets a value for it, and then delete the new row that was added to the tabular form

.

!..

0
1

,

:

if(curr_code==l_code) 
{ 
   $(pThis).val(''); 
   $('#f02_'+row_id).closest("tr").remove();
   $('#f05_'+id).val(parseInt($('#f05_'+id).val())+1); 
   $('#f05_'+id).focus(); i=0; cond=1; } 
else 
    cond=0;
0

All Articles