【问题标题】:Input Textfield validation in JSFJSF 中的输入文本字段验证
【发布时间】:2014-08-06 11:50:11
【问题描述】:

我目前正在尝试使用 JSF 创建一个表单,其中有两个 inputText,其中只有一个 inputText 必须输入一个值。有什么方法可以在 JSF 中做到这一点?如果我在另一个 inputText 中输入了值,是否可以禁用其中一个输入框?以下是我用来获取值的输入标签。目前可以在两个字段中输入值。

<p:outputLabel for="field1" value="value1: "/>
<p:inputText id="field1"> </p:inputText>

<p:outputLabel for="field2" value="value2: "/>
<p:inputText id="field2"> </p:inputText>

有人可以指导我吗?

【问题讨论】:

  • 这个概念令人困惑。如果其中一个 inputTexts 被禁用,并且用户在填写第一个时出错,并且想要撤消更改,则唯一的解决方案是清空已填充的 inputText。对我来说,这个想法不是一个有效的方法。
  • 我实际上只是在尝试一种方法来强制用户在一个文本框中输入值,而不是同时输入...

标签: javascript jsf jsf-2


【解决方案1】:

您可以使用o:validateOne by OmniFaces

&lt;o:validateOne&gt; 验证是否只有一个给定的 UIInput 组件已填写完毕。

b.t.w 在 OmniFaces 中还有以下(除其他外)验证器

validateMultiple

validateOneOrMore

validateOneOrNone

【讨论】:

    【解决方案2】:

    我的猜测是,如果您在不点击按钮的情况下向第一个 inputField 添加一些值,您希望将第二个输入字段设置为“禁用”。

    您可以通过 inputText 中的 onkeyup="" 事件来执行此操作,该事件调用 backingBean 方法,将第二个输入字段设置为禁用。

    例子:

    <p:outputLabel for="field1" value="value1: "/>
    <p:inputText id="field1" disabled="#{backingBean.field1Disabled} 
    onkeyup="#{backingBean.disableField2}" value=#{backingBean.value1}/>
    
    <p:outputLabel for="field2" value="value2: "/>
    <p:inputText id="field2" disabled="#{backingBean.field2Disabled} 
    onkeyup="#{backingBean.disableField1}/>
    

    您可以在 backingBean 中有一个方法,例如:

    public void disableField2() {
        if (value1.length() > 0) {
            field2Disabled = true;
        } else {
            field2Disabled = false;
        }
    }
    
    public void disableField1() {
        if (value2.length() > 0) {
            field1Disabled = true;
        } else {
            field1Disabled = false;
        }
    }
    

    【讨论】:

      【解决方案3】:

      我找到了适合我要求的解决方法... 我正在调用我的第一个文本框的 javascript 函数 onblur 并禁用第二个文本框。如果第二个输入框输入了值,则调用相同的函数来禁用第一个复选框。

      【讨论】:

      • 我建议尽可能少地使用 jQuery / javascript 与 JSF 结合,以降低复杂性并使应用程序在您不在的情况下对其他人更易于维护和管理。 jQuery 并不是开发人员在维护 JSF 应用程序时首先考虑的问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      相关资源
      最近更新 更多