首页 > 解决方案 > 如何在 ADF 中编写内联 JavaScript

问题描述

我有一个人工任务视图页面。在其中一个 inputText 字段中,我希望输入文本文件不包含非数值。我已经关注了链接;https://www.oracle.com/technetwork/developer-tools/adf/learnmore/march2011-otn-harvest-351896.pdf -> 第 18 页。我的 inputText 字段中有以下代码。

<af:inputText value="#{bindings.IBANDiger.inputValue}"
        label="#{bindings.IBANDiger.hints.label}"
        required="true"
        rendered="#{fn:startsWith(bindings.HesapGrubu.inputValue, 'S')}"
        columns="#{bindings.IBANDiger.hints.displayWidth}"
        maximumLength="#{bindings.IBANDiger.hints.precision}"
        shortDesc="#{bindings.IBANDiger.hints.tooltip}"
        id="it5">
    <af:validateRegExp pattern="[0-9]"/>
    <f:validator binding="#{bindings.IBANDiger.validator}"/>
    <af:clientListener method="suppressCharacterInput" type="keyPress"/>
</af:inputText> 

作为来源,我有以下内容。

<af:resource type="javascript">
//Allow numbers, cursor control keys and delete keys
function suppressCharacterInput(evt) {
    var _keyCode = evt.getKeyCode();
    var _filterField = evt.getCurrentTarget();
    var _oldValue = _filterField.getValue();
    if (!((_keyCode < 57) || (_keyCode > 96 && _keyCode < 105))) {
        _filterField.setValue(_oldValue);
        evt.cancel();
    }
}
</af:resource>

在 jdeveloper 中, 57< 显示为红色,当我保存文件时,它告诉我该部分是非法令牌。

我是否遗漏了什么,或者如果使用 javascript 不是最佳实践,我还有哪些其他选择?

注意:当我使用以下内容时,它不会引发错误。虽然它不起作用


<af:inputText value="#{bindings.IBANDiger.inputValue}"
        label="#{bindings.IBANDiger.hints.label}"
        required="true"
        rendered="#{fn:startsWith(bindings.HesapGrubu.inputValue, 'S')}"
        columns="#{bindings.IBANDiger.hints.displayWidth}"
        maximumLength="#{bindings.IBANDiger.hints.precision}"
        shortDesc="#{bindings.IBANDiger.hints.tooltip}"
        id="it5">
    <af:validateRegExp pattern="[0-9]"/>
    <f:validator binding="#{bindings.IBANDiger.validator}"/>
    <af:clientListener method="sayHello" type="keyPress"/>
</af:inputText>  

作为来源,我有以下内容。

   <af:resource type="javascript">
   function sayHello()
   {
     alert("Hello, world!")
   }
   </af:resource>
 </source>

谢谢。

另外:如何修改绑定。我不能去那个位置。已经两天了,所以我是新人。

标签: javascriptoracle-adf

解决方案


在 jdeveloper 中, 57< 显示为红色,当我保存文件时,它告诉我该部分是非法令牌。

<符号是html结束标记,这就是它造成麻烦的原因。
如果简化,这就是您所做的:<tag>a < b</tag>.
转义<符号使用&lt;: <tag>a &lt; b</tag>

您可以在 wiki 上阅读更多关于 html 符号转义的信息。


推荐阅读