我有一段JavaScript代码,不断抛出“未定义的”字样。错误。
< script language = "javascript"
type = "text/javascript" >
// fuction added for click on submit - dp0jmr 05/23/2018
function checkScheduleAndAmount() {
var ppAmt = (double)
<%=p.getPaymentPlanAmt()%>;
var totalamt = (double) document.getElementById("sum").innerText;
if (ppAmt != totalamt) {
alert("The Payment Plan Schedule does not add up to the total Payment Plan Amount - this Payment Plan cannot be submitted." +
" Please correct the Amounts entered and submit the Payment Plan Schedule before leaving this page." +
"\n\nIf the Date Range you have entered does not allow you to enter the Plan you desire, please End this Payment Plan " +
"and begin a new one." +
"\n\nIf you know the installment amount you wish to use, you can enter an installment amount at the start of a new " +
"Payment Plan, and the application will calculate the final payoff date for you. ");
return false;
} else {
return true;
}
}
<
/script>
&#13;
我尽可能多地消灭了可能的罪魁祸首:
函数调用位于div最底部的html:button标记上。
<html:submit property="submitValue" value="<%=PaymentPlanDetailsForm.SUBMIT%>" styleClass="button" disabled="<%=isActive %>" onclick="return checkScheduleAndAmount()" onkeypress="return false"/>
这在最初改进我的JQuery函数后开始出现,但是这两个函数在测试期间似乎都运行良好,甚至似乎在没有问题的情况下工作了一段时间 - 不幸的是,我现在无法恢复我的更改,因为我犯了错误关闭IDE。 :(
我是否遗漏了语法中明显的内容?或者我的页面没有识别我的javascript功能还有另一个原因吗?
答案 0 :(得分:4)
此JavaScript代码:
var totalamt = (double) document.getElementById("sum").innerText;
...是无效的JavaScript代码,因此解析失败,并且未创建该函数。
JavaScript不是C#或Java或(此处插入语言)。它没有铸造。只需删除(double)
部分即可。如果您要将该字符串转换为数字,请使用一元+
,Number
函数,parseInt
或parseFloat
。
例如,如果您要将文本的所有转换为数字,并将空白视为无效输入,则:
var str = document.getElementById("sum").innerText;
var totalamt = str ? +str : NaN;
if (isNaN(totalamt)) {
// ...it wasn't a valid number
}
正如我所提到的,您也可以使用parseInt
或parseFloat
,但要注意他们接受带有尾随非数字字符的数字(parseFloat("123.4abc")
为123.4
,例如)。