错误WordPress jQuery表单错误说未引用函数()

我正在用JavaScript构建emi计算器, 以便在wordpress网站中使用。问题是我在控制台中收到以下错误。未捕获的ReferenceError:HTMLInputElement.onchange上未定义calculateEMI。我的代码如下
的HTML

< table> < tr> < th> Outstanding Principle< /th> < th> Interest Rate (%)< /th> < th> Tenure < /th> < th> < /th> < th> EMI< /th> < /tr> < tr> < td> < input type="text" id="outstanding_principle" onchange="calculateEMI(this); "> < /td> < td> < input type="text" id="interest_rate" onchange="calculateEMI(this); "> < /td> < td> < input type="radio" id="years" name="selection" value="http://www.srcmini.com/years" onchange="calculateEMI(this); " /> Years < input type="radio" id="months" name="selection" value="http://www.srcmini.com/Months" onchange="calculateEMI(this); " /> Months < /td> < td> < input type="text" id="tenure" onchange="calculateEMI(this); "> < /td> < td> < input type="text" readonly="true" id="emi"> < /td> < /tr> < /table>

我对jquery的代码如下, 请告诉我我错了。
< script> function calculateEMI(){ var emi = 0; var P =0; var n = 1; var r = 0; if(jQuery("#outstanding_principle").val !== ""){ P = parseFloat(jQuery("#outstanding_principle").val()); if(jQuery("#interest_rate").val !== ""){ r = parseFloat(parseFloat(jQuery("#interest_rate").val()) / 100); }if(jQuery("#tenure").val() !== ""){ n = parseFloat(parseFloat(jQuery("#tenure").val())); }} if (P !== 0 & & n !== 0 & & r !== 0 & & jQuery("#years").is(':checked')){ n = n * 12; emi = parseFloat((P * r / 12) * [Math.pow((1 + r / 12), n)] / [Math.pow((1 + r / 12), n) - 1]); jQuery("#emi").val(emi.toFixed(2)); }else if(P !== 0 & & n !== 0 & & r !== 0 & & jQuery("#months").is(':checked')){ emi = parseFloat((P * r / 12) * [Math.pow((1 + r / 12), n)] / [Math.pow((1 + r / 12), n) - 1]); jQuery("#emi").val(emi.toFixed(2)); }}

我正在使用页面构建器。另请注意, 控制台也在顶部显示了此信息。 JQMIGRATE:已安装迁移版本1.4.1
#1你的代码工作正常。
function calculateEMI(){var emi = 0; var P =0; var n = 1; var r = 0; if(jQuery("#outstanding_principle").val !== ""){P = parseFloat(jQuery("#outstanding_principle").val()); if(jQuery("#interest_rate").val !== ""){r = parseFloat(parseFloat(jQuery("#interest_rate").val()) / 100); }if(jQuery("#tenure").val() !== ""){n = parseFloat(parseFloat(jQuery("#tenure").val())); }}if (P !== 0 & & n !== 0 & & r !== 0 & & jQuery("#years").is(':checked')){n = n * 12; emi = parseFloat((P * r / 12) * [Math.pow((1 + r / 12), n)] / [Math.pow((1 + r / 12), n) - 1]); jQuery("#emi").val(emi.toFixed(2)); }else if(P !== 0 & & n !== 0 & & r !== 0 & & jQuery("#months").is(':checked')){emi = parseFloat((P * r / 12) * [Math.pow((1 + r / 12), n)] / [Math.pow((1 + r / 12), n) - 1]); jQuery("#emi").val(emi.toFixed(2)); }}

< script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> < /script> < table> < tr> < th> Outstanding Principle< /th> < th> Interest Rate (%)< /th> < th> Tenure < /th> < th> < /th> < th> EMI< /th> < /tr> < tr> < td> < input type="text" id="outstanding_principle" onchange="calculateEMI(this); "> < /td> < td> < input type="text" id="interest_rate" onchange="calculateEMI(this); "> < /td> < td> < input type="radio" id="years" name="selection" value="http://www.srcmini.com/years" onchange="calculateEMI(this); " /> Years< input type="radio" id="months" name="selection" value="http://www.srcmini.com/Months" onchange="calculateEMI(this); " /> Months< /td> < td> < input type="text" id="tenure" onchange="calculateEMI(this); "> < /td> < td> < input type="text" readonly="true" id="emi"> < /td> < /tr> < /table>

#2
  • 代码存在错误。
  • 其他代码可能有误。
  • 使用开发人员工具栏检查错误。
  • 使用calculateEMI(); 而不是calculateEMI(this);
function calculateEMI() {var emi = 0; var P = 0; var n = 1; var r = 0; if ($("#outstanding_principle").val !== "") {P = parseFloat($("#outstanding_principle").val()); if ($("#interest_rate").val !== "") {r = parseFloat(parseFloat($("#interest_rate").val()) / 100); }if ($("#tenure").val() !== "") {n = parseFloat(parseFloat($("#tenure").val())); }}if (P !== 0 & & n !== 0 & & r !== 0 & & $("#years").is(':checked')) {n = n * 12; emi = parseFloat((P * r / 12) * [Math.pow((1 + r / 12), n)] / [Math.pow((1 + r / 12), n) - 1]); $("#emi").val(emi.toFixed(2)); } else if (P !== 0 & & n !== 0 & & r !== 0 & & $("#months").is(':checked')) {emi = parseFloat((P * r / 12) * [Math.pow((1 + r / 12), n)] / [Math.pow((1 + r / 12), n) - 1]); $("#emi").val(emi.toFixed(2)); }}

< script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> < /script> < table border="1"> < tr> < th> Outstanding Principle< /th> < th> Interest Rate (%)< /th> < th> Tenure Type< /th> < th> Tenure< /th> < th> EMI< /th> < /tr> < tr> < td> < input type="text" id="outstanding_principle" onchange="calculateEMI(); "> < /td> < td> < input type="text" id="interest_rate" onchange="calculateEMI(); "> < /td> < td> < input type="radio" id="years" name="selection" value="http://www.srcmini.com/years" onchange="calculateEMI(); " /> Years< input type="radio" id="months" name="selection" value="http://www.srcmini.com/Months" onchange="calculateEMI(); " /> Months< /td> < td> < input type="text" id="tenure" onchange="calculateEMI(); "> < /td> < td> < input type="text" readonly="true" id="emi"> < /td> < /tr> < /table>

#3我尝试了你的代码, 最初我遇到的错误与你的错误相同, 但是我注意到你没有关闭script标记。我关闭了脚本标签, 并尝试了代码, 错误消失了。
【错误WordPress jQuery表单错误说未引用函数()】希望这对你也有帮助。

    推荐阅读