1. Overview

In this we are going to see about how to check the character in the numeric page item on lose focus and also going to check the decimal length on lose focus.

2. Technologies and Tools Used

The following technology has been used to achieve the same.

Ø   Java script`

Ø   Oracle Apex 22.1

3. Use Case

There will be automatic validation for checking the number field but it will work only on clicking the button but we can also show the error on lose focus of the item when entering the characters in to it by using the below method.And also in this we are checking length of the decimal numbers in the lose focus.

  1. Architecture.

 

Step 1:  Create new page in oracle application and create a new region

Step 2:  Create a new page item as number field.

Step 3: Create a dynamic action select javascript code and paste the following code.

CODE :

var a = $v(‘P3_NUMBER’);

if(isNaN(a)) { 

    apex.message.clearErrors();

   if ( $(“#P3_NUMBER_error”).length == 0) {

           apex.message.showErrors([

    {

        type:       “error”,

        location:   [ “page”, “inline” ],

        pageItem:   “P3_NUMBER”,

        message:    “Number Must be a Numeric.”,

        unsafe:     false

    }

      ])

    }

      }

      else{

   apex.message.clearErrors();

          }

Step 4: Add another dynamic action to check the length of the item in the lose focus.Add P0_VALIDATION page item in global page and make it as hidden item.This page item has been created to set the value in it.

Step 5: In server side code paste the following code.

 

CODE :

 

declare

lv_length_fnd    NUMBER;

lv_length_bck    NUMBER;

lv_cnt           NUMBER;

lv_number        VARCHAR2(200);

begin

:P0_VALIDATION := ‘N’;

if :P3_NUMBER is not null then

lv_number:=to_number(:P3_NUMBER);

select count(*) into lv_cnt from dual where :P3_NUMBER like (‘%.%’);

if lv_cnt > 0 then 

lv_length_fnd :=length(SUBSTR(:P3_NUMBER,1,INSTR(:P3_NUMBER,’.’)-1));

lv_length_bck :=length(SUBSTR(:P3_NUMBER,INSTR(:P3_NUMBER,’.’)+1,length(:P3_NUMBER)));

if lv_length_fnd > 2 or lv_length_bck > 2 then

:P0_VALIDATION := ‘Y’;

else 

:P0_VALIDATION := ‘N’;

end if;

else 

lv_length_fnd :=length(:P3_NUMBER);

if :P3_NUMBER = 0 then 

:P0_VALIDATION := ‘Y’;

else

if lv_length_fnd > 2 then

:P0_VALIDATION := ‘Y’;

else 

:P0_VALIDATION := ‘N’;

end if;

end if;

end if;

end if;

exception

when others then :P0_VALIDATION := ‘N’;

end;

Step 6: Add another true action paste the following code in javascript code.

CODE:

var a = $v(‘P0_VALIDATION’);

if (a == “Y”) {

apex.message.clearErrors();

$(“#P0_VALIDATION”).val(“N”);

if ( $(“#P3_NUMBER_error”).length == 0) {

apex.message.showErrors([

{

type:       “error”,

location:   [ “page”, “inline” ],

pageItem:   “P3_NUMBER”,

message:    ” ‘Number’ length should be (2,2)”,

unsafe:     false

}

])

}

}

else{

if ( $(“#P3_NUMBER_error”).length == 0) {

 

apex.message.clearErrors();

$(“#P0_VALIDATION”).val(“N”);

}

}

Step 7:   Click save and run the page.

Step 8: Output.

CONCLUSION :

By following the above steps  we can check the number field and length of the decimal in the page item on  lose focus.

 

Recent Posts

Start typing and press Enter to search