我怎样才能无需提交
我创建的形式为客户页面,我需要做验证客户的名称,如我怎样才能无需提交
1 - type the new name into item P1_CUST_NAME.
2 - after leaving this item go to database and check if this name already exist or not.
3 - display alert or message for the client.
4 - prevent the client from navigating a way from this item until he enter valid data.
是的,你可以通过使用Dynamic Action
创建服务器端验证创建的Oracle APEX服务器端实时验证和JavaScript功能apex.server.process
。
一个基本的例子,以demonstrate-
在下面的代码,我检查P4_ITEM值,你可以写你自己的逻辑来验证。
BEGIN
IF :P4_NAME = 'HIMANSHU'
THEN
HTP.prn ('SUCCESS');
ELSE
HTP.prn ('ERROR');
END IF;
END;
- 现在创建一个新的动态动作和选择事件为“失焦”,选择类型为“项目(S)”,并在项目(S)选择项目名称。
- 创建一个真正的行动,并选择 “执行JavaScript代码”。
在代码段,实现apex.server.process
像如下─
apex.server.process('validate_name',
{
pageItems : '#P4_NAME'
}
,
{
dataType : 'text', success : function(data)
{
if(data != 'SUCCESS')alert(data);
}
}
)
第一个参数是页面进程名(validate_name),其前面我们已经建立,第二要提交到过程中的数据和第三是选项。 有关apex.server.process的更多详细信息
完成。刷新页面并检查。验证失败后,您将收到警报。
您可以进一步自定义您的JS代码,以更加奇特的方式显示错误消息,而不是显示警报。
非常感谢,非常有帮助 –
欢迎您!不要忘记标记这个答案有帮助。 – Himanshujaggi
请不要打扰#4(“防止客户端导航”),它会导致用户的糟糕的UI体验。 –