Search code examples
javascriptjsficefaces

javascript in jsf/icefaces


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 ?


Solution

  • 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;
      }