2013-07-25 3 views
0

Есть ли способ в richfaces ajaxvalidator или ajax, чтобы пользователь мог писать в inputText, как только он пишет что-то, кроме числа. Другими словами, можно отключить поле inputText, когда пользователь вводит NaN.jsf inputText validator

например: если пользователь пытается написать: «11a», есть ли способ предотвратить использование пользователем a? поэтому, когда он нажимает «a», появляется предупреждение о том, что вводится не число.

Это JSF код:

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

Это в коде боба:

@NotNull 
private double price; 

public double getPrice() { 
return price; 
} 

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

В моем коде предупреждение появляется, когда пользователь пишет NaN, но это не мешает ему написав его.

+1

Почему бы не допустить ввод в тексте в с помощью JavaScript? Для чего нужен сервер? – skuntsel

+0

Это большее приложение, которое представляет собой только одну форму всей страницы. – alan

ответ

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);"/> 
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;"/> 

это позволит номера, запятые и точки.

+0

Я думаю, что это не будет сделано, так как поле является 'double', и пользователь, вероятно, захочет добавить символ' .'. –

+0

Да, я пробовал, он не работал, используя письма все еще работали – alan

Смежные вопросы