0

リッチフェイスの 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 を書き込むと警告が表示されますが、それは彼がそれを書くことを妨げません。

4

2 に答える 2

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);"/>
于 2013-07-29T15:18:51.193 に答える
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;"/>

これにより、数字、コンマ、およびドットが許可されます。

于 2013-07-25T19:48:21.593 に答える