我的表单中有一个数字输入元素,它根据其值生成或删除其他字段。
如果我在用户更改号码(.on('input', function() {...})
)后立即调用该功能来生成它们,我会遇到以下用例问题:让我们说用户输入' 10&#39 ;和,生成10个字段;用户将它们填满,然后注意到他还需要一个。如果他只是点击向上箭头到达11,则会创建一个新字段并且一切正常,但是如果他删除了' 0' 0来自' 10',在他能够写出' 11'之前,其他9个字段消失,所有插入的数据都将丢失。
相反,如果我在用户完成后调用该功能(使用.focusout(function() {...})
),则它太慢,因为在用户离开该字段之前其他字段不会出现。
这种情况下的最佳做法是什么?
答案 0 :(得分:2)
您应该考虑使用focusout
事件。根据用户按下的最后一个键创建一个打字计时器可能听起来更加缓慢,让用户感到困惑。
虽然,有一个SO(https://ux.stackexchange.com/)的UX部分,你可以找到优秀的用户体验设计师的建议!
答案 1 :(得分:0)
将用户数据保存在内部对象(如数组或json)中,因此即使字段数发生更改,数据也不会丢失。