我有一个带有验证的表单,以检查输入的名称是否已存在于数据库中,当单击提交按钮时,如果验证成功,我想继续插入,如果失败,则显示用户提示,如果用户确定就可以了,然后继续更新现有记录。我知道如何一次执行其中一项,但不确定如何有条件地执行此操作。
如果我想显示提示,我可以redirect to URL
在按钮单击上使用并将提示设置为我想要的任何内容,但是如何仅在验证失败时显示提示?
我有一个带有验证的表单,以检查输入的名称是否已存在于数据库中,当单击提交按钮时,如果验证成功,我想继续插入,如果失败,则显示用户提示,如果用户确定就可以了,然后继续更新现有记录。我知道如何一次执行其中一项,但不确定如何有条件地执行此操作。
如果我想显示提示,我可以redirect to URL
在按钮单击上使用并将提示设置为我想要的任何内容,但是如何仅在验证失败时显示提示?
根据后续评论,我建议以下内容:
添加第二个动作。将操作设置为执行 JavaScript 代码。在代码字段中输入如下代码:
var nameExists = $v('P1_NAME_EXISTS') === 'Y';
if (!nameExists) {
apex.page.submit('SAVE');
} else {
apex.page.confirm('This name already exists. Would you like to update the existing entry?', 'SAVE');
}
The JavaScript code will check the value of the hidden item after the PL/SQL process updates it. If the name doesn't already exist, then the page will just be submitted. If the name already exists, then the user will be prompted. Only if they click okay will the page be submitted.
You could change the value of the submit values if you needed to tell the difference.
您创建一个声明性验证。如果您的验证条件失败,您将看到您定义的错误,而不是正常处理。
在这种情况下,您可以根据行的存在进行验证。
如果所有验证都正常,则页面处理将开始。
所有计算、验证和过程都可以是有条件的 - 可以是指定的按钮,也可以是通常基于有效 :REQUEST 的条件。
或者,您可以在值已经存在时对失败的表进行约束,并使用您的 APEX 错误函数来处理它。当您可以依赖数据库约束时,为什么要进行预检查?