多个块中的必填字段

Posted

技术标签:

【中文标题】多个块中的必填字段【英文标题】:Required fields in multiple blocks 【发布时间】:2020-09-02 20:31:57 【问题描述】:

我有两个数据库块:A 和 B。我还有 3 个选项卡:

第一个选项卡包含块 A 中的项目, 第二个有块 B 中的项目, 第三个有 A 块的物品

两个块中的所有字段都是必需的。

我的问题是我想按选项卡的顺序输入字段,但在我的情况下,因为当我想转到第二个选项卡时需要字段,所以我需要进入第三个才能输入所有字段,然后第二个。

如何解决?

【问题讨论】:

【参考方案1】:

当您从第一个选项卡(基于表/块 A)导航到第二个选项卡(基于表/块 B)时,表单会执行验证,并且 - 并非所有属于表 A 的必填字段(那些放置到第三个选项卡)未填充 - 表单引发错误。

一种选择是从属于表 A 并放置到第三个选项卡的所有字段中删除“必需”属性。这意味着您必须检查它们是否是手动填充的,即编写一个可以执行此操作的触发器。哪一个? PRE-INSERTPRE-UPDATE 可能是您的选择。代码看起来像

if :tab3.field1 is null or
   :tab3.field2 is null or ...
then
   message('Not all fields have been populated on tab 3');
   raise form_trigger_failure;
end if;

或者,重新排列布局

将字段从选项卡 3 移动到选项卡 1,或 切换标签 2 和标签 3 的位置

或者,如果过程是这样的,可能是您的数据模型设置错误。您所描述的看起来像是某种“主从”关系,其中表 A 充当“主”,表 B 充当“详细”。您不应部分填充 master ,尤其是在需要其所有列时。如果这就是问题所在,那么它确实一个问题,因为更改数据模型并不一定很简单,因为它会影响很多事情。

【讨论】:

谢谢,这确实是个问题。我发现有人将表单属性验证设置为表单范围并将字段的属性(必需)设置为 false,然后将字段设置为必需并再次将表单验证设置为项目范围。他为什么这样做 不客气。他们为什么这样做?好吧,与大多数问题一样,这有几个选项可能会有所帮助。哪一个是最好的”?我不知道,你应该尝试它们并选择最适合你的。

以上是关于多个块中的必填字段的主要内容,如果未能解决你的问题,请参考以下文章

android中的必填字段[重复]

表单提交而不检查ext js中的必填字段

将值传递给不是来自 Django ModelForm 中的输入的必填字段

如何更新嵌套数组MongoDb Node js中的必填字段[重复]

使 mat-radio-button 成为表单中的必填字段

好看的必填文本字段