我正在制作一个表单,只有在输入值为数字时才希望代码执行。我试图避免使用某种验证插件,并且想知道是否有方法循环输入字段并检查值。
我一直在尝试以下,但我认为我的逻辑是错误的:
(#monthlyincome是表单id)
$("#submit").click(function() { $("#monthlyincome input").each(function() { if (!isNaN(this.value)) { // process stuff here } }); });
有任何想法吗?
这是整个更新的代码:
$("#submit").click(function() { $("#monthlyincome input[type=text]").each(function() { if (!isNaN(this.value)) { // processing data var age = parseInt($("#age").val()); var startingage = parseInt($("#startingage").val()); if (startingage - age > 0) { $("#field1").val(startingage - age); $("#field3").val($("#field1").val()); var inflationyrs = parseInt($("#field3").val()); var inflationprc = $("#field4").val() / 100; var inflationfactor = Math.pow(1 + inflationprc,inflationyrs); $("#field5").val(inflationfactor.toFixed(2)); var estyearlyinc = $("#field6").val(); var inflatedyearlyinc = inflationfactor * estyearlyinc; $("#field7").val(FormatNumberBy3(inflatedyearlyinc.toFixed(0),",".")); var estincyears = $("#field2").val(); var esttotalinc = estincyears * inflatedyearlyinc; $("#field8").val(FormatNumberBy3(esttotalinc.toFixed(0),".")); var investmentrate = $("#field9").val() / 100; var investmentfactor = Math.pow(1 + investmentrate,inflationyrs); $("#field10").val(investmentfactor.toFixed(2)); var currentsavings = $("#field11").val(); var futuresavings = currentsavings * investmentfactor; $("#field12").val(FormatNumberBy3(futuresavings.toFixed(0),".")); //final calculations var futurevalue = (1 * (Math.pow(1 + investmentrate,inflationyrs) - 1) / investmentrate); var finalvalue = (1 / futurevalue * (esttotalinc - futuresavings)); $("#field13").val(FormatNumberBy3(finalvalue.toFixed(0),".")); } // end processing } }); });
FormatNumberBy3是用于…格式化数字的函数。