我使用 GWT uibinder 方法,我的 html 包含一个文本框,例如
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:idmw="urn:import:com.testing.wid.impl">
<g:HTMLPanel>
<table align="center" valign="center" height="25%">
<tr><td><g:TextBox ui:field='searchS' /></td></tr>
</table>
</g:HTMLPanel>
我怎么能够关闭自动更正和自动大写对于这个文本框?
我试过
<g:TextBox ui:field='searchS' autocapitalize="off" autocorrect="off"/>
但我明白了
[ERROR] Class TextBox has no appropriate setAutocorrect()
method Element <g:TextBox autocapitalize='off' autocorrect='off' ui:field='searchS'>
还有其他方法我可以做到这一点吗???
Thanks
正如@Boris Brudnoy 已经指出的那样,没有内置的方法可以使用 TextBox 来完成此操作。进一步提出他的建议,最好将其提取到新的自定义组件中(以简化重用和支持):
- 添加新包(例如
com.app.shared.customcontrol
)
-
添加新的自定义文本框:
public class CustomTextBox extends TextBox {
public void setAutocomplete(String value){
this.getElement().setAttribute("autocomplete", value);
}
public void setAutocapitalize(String value){
this.getElement().setAttribute("autocapitalize", value);
}
}
-
使用 UI 绑定器声明新的命名空间并使用您的组件:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:c="urn:import:com.app.shared.customcontrol">
<g:HTMLPanel ...>
<c:CustomTextBox ui:field="..." autocomplete="off" autocapitalize="off" />
</g:HTMLPanel>
</ui:UiBinder>
作为替代方法,如果您想在系统范围内应用这些设置,您可以通过构造函数来完成:
public class CustomTextBox extends TextBox {
public CustomTextBox() {
this.getElement().setAttribute("autocomplete", "off");
this.getElement().setAttribute("autocapitalize", "off");
}
....
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)