如何使JSF inputText字段在blur上大写
当用户将焦点从字段移开时,我想将JSF inputText字段变成大写。最好使用如何使JSF inputText字段在blur上大写,jsf,jsf-2,uppercase,onblur,Jsf,Jsf 2,Uppercase,Onblur,当用户将焦点从字段移开时,我想将JSF inputText字段变成大写。最好使用f:ajax标记并让blur事件触发对服务器的调用以执行大写字母,还是最好使用JavaScript?在JavaScript中不这样做的原因是什么?始终使用对服务器端的ajax调用来完成这类事情是最好的吗?确实有两种方法可以挽救这一点 使用JavaScript <h:inputText ... onblur="value=value.toUpperCase()" /> JS方法非常简单。但是,这是可以被
f:ajax
标记并让blur
事件触发对服务器的调用以执行大写字母,还是最好使用JavaScript?在JavaScript中不这样做的原因是什么?始终使用对服务器端的ajax调用来完成这类事情是最好的吗?确实有两种方法可以挽救这一点
<h:inputText ... onblur="value=value.toUpperCase()" />
我认为你不必用复杂的方式来完成这件简单的事情。我建议结合BalusC和BlackKat提供的解决方案:
<h:inputText ... onblur="value=value.toUpperCase()" style="text-transform: uppercase" />
在这种情况下,您在输入时甚至看不到任何小写字母(BlackKat solution advantage),提交的值将是大写字母(BalusC solution advantage)请注意,这纯粹是一种表示,因此提交到服务器端后,该值不会在服务器端大写。我知道OP希望服务器端的值也是大写的。感谢@BalusC和BlackKat,这种风格正是我所需要的(当然我的代码中也需要反大写)。这是这个问题的完美答案,因为它简单。
@FacesConverter("toUpperCaseConverter")
public class ToUpperCaseConverter implements Converter {
@Override
public Object getAsObject(FacesContext context, UIComponent component, String submittedValue) {
return (submittedValue != null) ? submittedValue.toUpperCase() : null;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object modelValue) {
return (modelValue != null) ? modelValue.toString() : "";
}
}
<h:inputText ... onblur="value=value.toUpperCase()" style="text-transform: uppercase" />