gpt4 book ai didi

Javascript 仅允许 JSF 输入文本的负数或正数

转载 作者:行者123 更新时间:2023-11-30 14:13:00 25 4
gpt4 key购买 nike

我有一个输入文本,应该限制用户输入负号,只能在字符串的开头输入。

因为我使用的是自定义 primefaces jar,所以我无法使用 p:inputNumber(通过映射 bigdecimal)。 OnKeyPress 我添加的事件允许数字和 DOT 符号。但我无法限制用户在字符串中输入负号。有什么办法可以在 onkeypress 事件中实现它。我在下面给出了我的代码

<h:inputText value="#{dimStackLine.max}"
onkeypress="if( (event.which &lt; 48 || event.which &gt; 57) &amp;&amp; event.which != 46 ) return false;">
<p:ajax event="change" process="@this"></p:ajax>
<f:convertNumber pattern="####0.00000" />
</h:inputText>

最佳答案

使用你的方法

只需为输入的第一个字符添加一个异常(exception)。你可以通过做这样的事情来做到这一点;

<h:inputText value="#{downloadBackingBean.value}" onkeypress="if(($(this).val().length == 0 &amp;&amp; even.which == 45) || ((event.which &lt; 48 || event.which &gt; 57) &amp;&amp; event.which != 46 )) return false;">
<p:ajax event="change" process="@this"></p:ajax>
<f:convertNumber pattern="####0.00000" />
</h:inputText>

如您所见,这只是添加了一个额外的检查 - 如果减号是输入字段中的第一个字符,则允许您输入减号。

如果你走这条路,请确保在它填充你的支持 bean 之前验证值。

另一种服务器端方法

另一种方法是在服务器端进行。您可以通过 valueChangeListener 将值推送到支持 bean。然后,您可以对流程进行 ajax 化,并通过执行以下操作恢复到服务器端验证,

<h:form>
<h:inputText valueChangeListener="#{bean.onNewValue}" value="#{bean.value}">
<f:ajax event="keyup" render="@form" execute="@form"/>
</h:inputText>
</h:form>

valueChangeListener 在设置支持 bean 值之前被调用。这允许您不断检查传入的值并相应地处理它们。就像剥离不需要的字符。

您应该能够轻松地将其与 bean 验证或 JSF 验证相结合,具体取决于您的环境支持什么。

关于Javascript 仅允许 JSF 输入文本的负数或正数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54070713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com