jsf inputText验证器

时间:2013-07-25 18:59:32

标签: ajax jsf richfaces validation

有没有办法在richfaces中使用ajaxvalidator或者ajax,只要他写了一个不是数字的东西,就会将用户从inputText写入。 换句话说,当用户输入NaN时,可以禁用inputText字段。

例如:如果用户试图写:“11a”,有没有办法防止用户写a? 因此,当他按下“a”时,警告表示输入不会出现数字。

这是jsf代码:

<h:inputText id="price" value="#{carBB.price}" required="true">
    <rich:ajaxValidator event="onkeypress"/>                
</h:inputText>

这是在bean代码中:

@NotNull
private double price;

public double getPrice() {
return price;
}

public void setPrice(int price) {
this.price = price;
}

在我的代码中,当用户编写NaN时会出现警告,但这并不会阻止他编写它。

2 个答案:

答案 0 :(得分:0)

<h:inputText id="myId" value="#{myBean.value}" 
             onkeypress="if((event.which &lt; 48 &amp;&amp; event.which != 44 &amp;&amp; event.which != 46) || event.which &gt; 57) return false;"/>

这将允许数字,逗号和点。

答案 1 :(得分:0)

我最终得到的这个对我来说很好,只允许双打:\

在标题中:

<script type="text/javascript">
function disableKeys(e,exist)
{
    var unicode=e.keyCode;
    var value = exist.value;
    if((unicode< 0x30 && unicode != 0x2E) || unicode> 0x39) 
    {
        alert("Invalid Input should be number or \".\"");
        return false;
    }
    else if(unicode == 0x2E && value.indexOf(".")>=0)
    {
        alert("Invalid Input already contains a \".\"");
        return false;
    }
    else
    {
        return true;
    }

}
</script>

身体:

<h:inputText id="price" value="#{carBB.price}" onkeypress="return disableKeys(event,this);"/>