Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSF:创建一个;“哑巴”;什么也不做的按钮?_Jsf_Button_Usability - Fatal编程技术网

JSF:创建一个;“哑巴”;什么也不做的按钮?

JSF:创建一个;“哑巴”;什么也不做的按钮?,jsf,button,usability,Jsf,Button,Usability,在我们的JSFWeb应用程序中,我们有一个输入字段,用户可以在其中输入一个数字ID,然后由应用程序查找。为了帮助用户,查找被绑定到“onchange”,因此一旦用户从字段中签出或单击其他位置,就会触发查找 所以,用户输入“123”,按tab键(或单击),运行查找。这很好用;然而,出于可用性的原因,我们还希望提供一个用户可以点击的按钮,供那些想知道“我应该在哪里点击触发查找”的用户使用。为了做到这一点,我们希望提供一些看起来和感觉上都像HTML/JSF按钮的东西,但什么都不做(因为点击会触发“on

在我们的JSFWeb应用程序中,我们有一个输入字段,用户可以在其中输入一个数字ID,然后由应用程序查找。为了帮助用户,查找被绑定到“onchange”,因此一旦用户从字段中签出或单击其他位置,就会触发查找

所以,用户输入“123”,按tab键(或单击),运行查找。这很好用;然而,出于可用性的原因,我们还希望提供一个用户可以点击的按钮,供那些想知道“我应该在哪里点击触发查找”的用户使用。为了做到这一点,我们希望提供一些看起来和感觉上都像HTML/JSF按钮的东西,但什么都不做(因为点击会触发“onchange”事件)


有没有办法让JSF按钮什么都不做?我尝试在没有“action”属性的情况下使用h:commandButton,但它仍然会触发请求。

p:commandButton type=“button”只会提供一个按钮。

由于您将此问题也标记为可用性问题,如果onchange已经触发了查找,我建议首先不要使用按钮

从用户的角度来看,点击按钮是否是强制性的是令人困惑的。在他们输入该字段并跳到下一个字段后,他们会看到在不单击按钮的情况下进行查找。如果有一个按钮,他们会认为它的存在是有原因的


在这些情况下,我喜欢的选项是一个超时时间为半秒的onkeypress处理程序,然后查找值。

为什么不使用一个与jsf按钮具有相同类的简单html按钮,单击按钮是否没有触发jsf事件,或者它是否阻止了jsf事件?或者一个图像,如果您的目标是输入字段失去焦点,当然我可以使用HTML按钮,甚至只是一个图像,但我想要JSF提供的附加功能(例如能够使用图标属性、使用JSF资源引用图标、启用/禁用状态等)。
也可以。谢谢您的输入。是的,这是一个可用性问题,但是出于问题中给出的原因,我们的利益相关者明确要求使用onchange触发器和按钮。onkeypress+超时解决方案很有意思,但我担心如果有人在输入过程中犹豫,可能会触发该解决方案,这可能会非常混乱。我使用上述解决方案在GWT应用程序中查找街道和城镇中的荷兰邮政编码。超时触发一个正则表达式匹配,并且只有当模式完成时才执行实际的查找,在此期间我还将光标更改为忙碌状态。是的,与正则表达式匹配的组合解决了这个问题-好主意。然而,在我们的例子中,输入只是一个数字(可变长度),因此无法知道用户是否完成了键入。