Javascript - 完成JQuery函数后,函数未定义(但它是!)

时间:2018-05-30 15:24:38

标签: javascript jquery html

我有一段JavaScript代码,不断抛出“未定义的”字样。错误。

An undefined error from the inspect element function, showing an error that reads - 'checkScheduleAndAmount' is undefined - and highlights the onclick element - return checkScheduleAndAmount() - "



< 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;
&#13;
&#13;

我尽可能多地消灭了可能的罪魁祸首:

  • 我已经尝试了每个脚本定义的组合 - 除了这个JavaScript之外, 还有一些JQuery,但直到最近它才能正常运行。
  • 我尝试putting it inside the page element没有效果。
  • 我没有看到任何明显的语法错误 - 这里使用的所有变量都已定义。

函数调用位于div最底部的html:button标记上。

            <html:submit property="submitValue" value="<%=PaymentPlanDetailsForm.SUBMIT%>" styleClass="button" disabled="<%=isActive %>" onclick="return checkScheduleAndAmount()" onkeypress="return false"/>&nbsp;&nbsp;  

这在最初改进我的JQuery函数后开始出现,但是这两个函数在测试期间似乎都运行良好,甚至似乎在没有问题的情况下工作了一段时间 - 不幸的是,我现在无法恢复我的更改,因为我犯了错误关闭IDE。 :(

我是否遗漏了语法中明显的内容?或者我的页面没有识别我的javascript功能还有另一个原因吗?

1 个答案:

答案 0 :(得分:4)

此JavaScript代码:

var totalamt = (double) document.getElementById("sum").innerText;

...是无效的JavaScript代码,因此解析失败,并且未创建该函数。

JavaScript不是C#或Java或(此处插入语言)。它没有铸造。只需删除(double)部分即可。如果您要该字符串转换为数字,请使用一元+Number函数,parseIntparseFloat

例如,如果您要将文本的所有转换为数字,并将空白视为无效输入,则:

var str = document.getElementById("sum").innerText;
var totalamt = str ? +str : NaN;
if (isNaN(totalamt)) {
    // ...it wasn't a valid number
}

正如我所提到的,您也可以使用parseIntparseFloat,但要注意他们接受带有尾随非数字字符的数字(parseFloat("123.4abc")123.4,例如)。