2010-09-17 53 views
0

您能否建议最好的方法来关注页面上特定的输入字段? 我想说的是,无论用户点击屏幕的哪个位置,焦点应该返回到这个特定的输入。 我正在考虑计时器功能,每隔500毫秒检查一次焦点,如果它不在那里,然后将其恢复。 也是提交此输入字段而不使用任何按钮的最佳方式 对此的任何其他和最佳解决方案?JavaScript事件和HTML

回答

2

即使我不喜欢这个想法,考虑可用性和用户体验。无论如何,为了回答你的问题,你最好的拍摄可能是将焦点设置到该输入元素,并观察事件。添加你可能想要检查outside点击事件。

这可能是这样的:

$('#test').bind('focusout', function(e) { 
    if($(this).val() !== 'releaseme') { 
     setTimeout(function() { 
      $(e.target).focus(); 
     }, 25); 
    } 
}); 

这将迫使焦点设置到输入(与ID“测试”)为25ms后失去焦点。检查额外的外部点击检查this link

实施例链接:http://www.jsfiddle.net/FX79h/

再次,这听起来不usefriendly。你可能想要考虑你想做的事情。

+0

嗨,安迪,你能告诉我为什么你认为这不是用户友好的?实际上,我必须通过ajax调用将此输入传递给服务器,但用户无法调用此调用,只要输入字段被填充,我需要拨打电话 – t0mcat 2010-09-17 16:18:33

+1

@ t3ch您能想象在常规焦点时尝试读取页面转移了?此外,如果您在页面上有任何其他字段,用户将永远无法输入任何内容,因为焦点会立即被盗用。 – 2010-09-17 16:22:00

+1

@ t3ch:恐怕我不明白你的意思。你最初的问题是关于将用户棱镜分成一个特定的输入元素(这是不好的,因为用户不期望这样的行为,他会怎么做?)。现在你的评论听起来有很大的不同。如果你只需要知道什么时候输入元素被输入,你可能只想听'keypress'事件并从那里继续。 – jAndy 2010-09-17 16:22:53

0

会成为残疾人无障碍考虑的主要障碍。请记住,有些人不会使用鼠标进行导航,而是让网站对他们毫无用处。

至于允许提交,你可以通过Javascript陷入输入击键...有几个关于如何去做的教程。但是,这也会对预期的用户交互模式产生负面影响并破坏辅助功能。按钮文字是告诉盲人用户的屏幕阅读器他们可以提交到网站的唯一信息。没有它,你的网站对他们来说是个黑洞。

我全部都是为了试验和推动信封,但是有理由让你在整个网络上看到如此多的共同元素。想想这样 - 你会停下来三角形的蓝色停车标志吗?一个方形粉红色的呢?相信与否,熟悉的图案可以带来更舒适的体验。你如何“推”熟悉度决定了你作为一个用户界面的成功。我可能会补充说,有很多糟糕的用户界面。

+0

嗨bpeterson,这个输入将从扫描器馈送,用户无法控制页面上的内容 – t0mcat 2010-09-17 18:02:55