UI的最佳实践,其中两个输入框必须相关?

时间:2011-08-11 22:13:31

标签: javascript html user-interface

我有一个包含两个输入文本框的表单,一个名为serial,另一个名为warrantyClaimId。规则是如果warrantyClaimId也为空,则serial可以为空,如果warrantyClaimId 为空,则其数据必须与数据库中的序列数据相关联。也就是说,如果有保修索赔号,则必须有相应的验证序列号。但如果没有保修索赔,任何序列都可以。

我在两个输入上都有onchange

<input id="serial" type="textbox" onchange="checkSerial(this.value);" />
<input id="warrantyClaimId" type="textbox" onchange="checkClaim(this.value);" />

在checkSerial中,如果serial为空并且certClaimId不是,我告诉用户规则,然后将焦点放在串行输入上。

在checkClaim中,如果serial为空且不提供warrantyClaimId,我会告诉用户规则,然后将重点放在warrantyClaimId输入上。

这会导致一些陷入困境的用户体验。假设用户输入了两个输入的合法值。然后他们决定没有保修索赔,所以他们再次点击串口输入并删除了值。他们被困,除非他们能记住保修条款中带有值的序列号。

我即将实现更改以捕获串行字段的预编辑值,以便我可以在惩罚用户后恢复该值。但我想我会问是否有人有更聪明的解决方案。

任何输入都表示赞赏。谢谢!

2 个答案:

答案 0 :(得分:0)

我会在更改时警告关系,但在提交时更加强大(当然,在服务器上进行真正的验证)。

答案 1 :(得分:0)

我不愿意假设这是最好的方法。但是,我已经将第一个目标作为第二个目标。这样,他们是相关的。

换句话说,这样做。

<input id="serial" type="textbox" onchange="checkSerial(this.value);" />
<input id="warrantyClaimId" target="serial" type="textbox" onchange="checkClaim(this.value);" />

第二个目标是第一个的目标。它们本质上是相关的。从那里我可以从一个看到另一个。

希望这有帮助!