jsf/icefaces 中的 JavaScript

发布于 2024-10-26 08:41:59 字数 989 浏览 1 评论 0原文

我有一个带有 jspx 扩展名的文件,我编写的 javascript

function isNumber(inputId){

            var value = document.getElementById('mainForm:'+ inputId).value;
            var  s = value.length;

            while(s >= 0){
                var c = value.charAt(s);
                if(c > "9"){
                    alert("Value must be digit");
                    document.getElementById('mainForm:'+ inputId).value = "";
                    document.getElementById('mainForm:'+ inputId).focus();
                    return false;
                }
                s --;
            }
            return true;
        }

工作得很好,但是当我检查 if(c > "9" || c < "0") 这样的条件时,它会给出类似的错误

com.sun.facelets.FaceletException: Error Parsing /WEB-INF/includes/templates/cc-classic-template.jspx: Error Traced[line: 386] The content of elements must consist of well-formed character data or markup.

经过长时间观察,我发现 < (小于)符号会产生问题。 JSF不支持<符号 ?

I have file with jspx extension i write javascript like

function isNumber(inputId){

            var value = document.getElementById('mainForm:'+ inputId).value;
            var  s = value.length;

            while(s >= 0){
                var c = value.charAt(s);
                if(c > "9"){
                    alert("Value must be digit");
                    document.getElementById('mainForm:'+ inputId).value = "";
                    document.getElementById('mainForm:'+ inputId).focus();
                    return false;
                }
                s --;
            }
            return true;
        }

that work perfect but when i check if condition like if(c > "9" || c < "0") it will gives error like

com.sun.facelets.FaceletException: Error Parsing /WEB-INF/includes/templates/cc-classic-template.jspx: Error Traced[line: 386] The content of elements must consist of well-formed character data or markup.

After long observation i found that <(less than) sign will create problem.
Is JSF not support < sign ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

古镇旧梦 2024-11-02 08:41:59

将您的 Javascript 包含在 CDATA 部分中:

<script language="javascript" type="text/javascript">
/* <![CDATA[ */

    function isNumber(inputId){

            var value = document.getElementById('mainForm:'+ inputId).value;
            var  s = value.length;

            while(s >= 0){
                var c = value.charAt(s);
                if(c > "9"){
                    alert("Value must be digit");
                    document.getElementById('mainForm:'+ inputId).value = "";
                    document.getElementById('mainForm:'+ inputId).focus();
                    return false;
                }
                s --;
            }
            return true;
        }

        //Code containing "<" also comes in this section

/* ]]> */
</script>

Enclose your Javascript in CDATA Sections:

<script language="javascript" type="text/javascript">
/* <![CDATA[ */

    function isNumber(inputId){

            var value = document.getElementById('mainForm:'+ inputId).value;
            var  s = value.length;

            while(s >= 0){
                var c = value.charAt(s);
                if(c > "9"){
                    alert("Value must be digit");
                    document.getElementById('mainForm:'+ inputId).value = "";
                    document.getElementById('mainForm:'+ inputId).focus();
                    return false;
                }
                s --;
            }
            return true;
        }

        //Code containing "<" also comes in this section

/* ]]> */
</script>
原来分手还会想你 2024-11-02 08:41:59

正如 Matt Handy 所解释的,您不能在 JSPX 中使用 <> 符号,因为这是 XML 格式。针对您的问题,您有以下三种解决方案:

  • 使用 <> 进行转义。
  • 使用 将 JavaScript 代码保存在页面中。
  • 在单独的 .js 文件中设置 JavaScript 代码,并将其加载到 JSPX 页面中。

As explained by Matt Handy, you could not use the < or > sign in your JSPX, as this is a XML format. You have three solutions regarding your problem:

  • Escape by using < or >.
  • Use <![CDATA[ ... ]]> to hold your JavaScript code in your page.
  • Set your JavaScript code in a separate .js file, and load it in your JSPX page.
鹿童谣 2024-11-02 08:41:59

除了转义和 CDATA 答案之外:

如果你想检查一个值是否是数字,有一个 javascript 内置函数: isNaN

下面是一个示例:

if (isNaN(document.getElementById('mainForm:'+ inputId).value))
  {
    alert("Please enter digits");
    document.getElementById(obj).focus();
    document.getElementById(obj).select();
    return false;
  }

Besides the escaping and CDATA answers:

If you want to check if a value is a number, there is a javascript built-in function for that: isNaN

Here is an example:

if (isNaN(document.getElementById('mainForm:'+ inputId).value))
  {
    alert("Please enter digits");
    document.getElementById(obj).focus();
    document.getElementById(obj).select();
    return false;
  }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文