【问题标题】:inputText empty checkinputText 空检查
【发布时间】:2012-12-11 00:59:43
【问题描述】:

我正在使用 JSF,我有一个 h:inputText 文本框,

<h:form>
                    Please enter your username:
                    <h:inputText value="#{user.id}"/><br/><br/>

我希望当用户按下提交按钮时,

<h:commandButton value="Submit" action="upload/uploadText"/>

检查输入文本框中是否输入了一个值并且长度超过6个字符

我该怎么做?

我尝试过的代码:

<script type="text/javascript"> 

        function required(){  
            if (document.getElementById("Username").value.length == 0)  
            {   
                alert("message");        
                return false;   
            }       
            return true;   
        }

    </script> 

有了这个:

<h:body>

                <h:form onsubmit="return required();">
                    Please enter your username:
                    <h:inputText id="Username" value="#{user.id}">
                    </h:inputText><br></br><br></br>

                    To print a piece of text, please press the submit button below to upload the text:<br/><br/>
                    <h:commandButton type="submit" value="Submit" action="upload/uploadText"/>
                </h:form>

            </h:body>

我仍然无法让脚本运行

【问题讨论】:

  • 第一步:你读过 JavaScript 验证吗? What have you tried?
  • 我已经阅读了有关 js 验证的信息,我只是不确定它是如何检查输入文本框的,在我尝试过的代码上方发布代码
  • 这样稍微好点。你怎么打电话给required
  • 我还没有调用它,'onsubmit="required()">' 但我不确定该放在哪里
  • 现在有你真正的问题!

标签: javascript jsf


【解决方案1】:

由于您使用的是 JSF,因此您应该尽可能坚持使用 JSF 验证。

<h:inputText id="Username" value="#{UserBean.userName}">
  <f:validateLength minimum="6" maximum="15"/>
</h:inputText>

几个链接

http://viralpatel.net/blogs/javaserver-faces-jsf-validation-tutorial-error-handling-jsf-validator/

http://www.mkyong.com/jsf2/customize-validation-error-message-in-jsf-2-0/

【讨论】:

  • 谢谢,我试过了,但得到/index.xhtml @55,65 &lt;f:validateLength&gt; Parent not an instance of EditableValueHolder: javax.faces.component.html.HtmlForm@2434b3fb
  • 请注意,validateLenght 标签嵌套在内部 inputText 标签中。你不能这样做&lt;h:inputText id="Username" value="#{userBean.userName}"/&gt;
  • 非常感谢,我已经成功了,有什么办法可以让我在窗口中弹出错误消息吗?
  • 这将恢复为处理FacesMessage(或&lt;h:mesage&gt;&lt;h:messages&gt;)。主题很广泛,一种方法是使用component.isValid属性;另一种选择是使用已经提供解决方案的组件库(查看 primefaces 展示中的“Growl”示例)。我的方法相对于普通 JS 的缺点是一开始比较复杂;但优点是您可以像管理 JSF 应用程序中的任何其他消息一样结束管理验证消息。
  • 好的,谢谢,我可以不用任何js吗?我尝试了一些不同的验证码,但仍然没有一个会运行,我还注意到它不会接受 h:inputText 吗?这是我需要在网站上进行的唯一验证
【解决方案2】:

您需要将代码中的=&lt; 更改为&lt;=

我不知道JSF语法,但是你可以尝试改变这三个区域:

&lt;h:inputText name="myTextField" id="myTextField" /&gt;&lt;br/&gt;&lt;br/&gt;

&lt;h:form onsubmit="return required();"&gt;

function required(){  
     if (document.getElementById("myTextField").value.length <= 6)  
      {   
         alert("message");        
         return false;   
      }       
      return true;   
}

如果您只需要验证一个字段。

【讨论】:

  • 谢谢,我只是遇到了一个从未使用过 inputtx 的问题,onsubmit 是如何调用这个函数的?
  • @user1924104 我的错误。现已修复
  • 您好,我已经尝试过此代码,但由于某种原因仍然无法调用它,原来的问题已用新代码更新
猜你喜欢
  • 2014-02-28
  • 2014-02-12
  • 2012-09-23
  • 2011-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-30
  • 1970-01-01
相关资源
最近更新 更多