Reputation: 3255
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 ?
Upvotes: 3
Views: 9369
Reputation: 30025
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;
}
Upvotes: 0
Reputation: 81667
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:
<
or >
.<![CDATA[ ... ]]>
to hold your JavaScript code in your page..js
file, and load it in your JSPX page.Upvotes: 4
Reputation: 353
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>
Upvotes: 11