フォームを作成していて、入力値が数値の場合にのみコードを実行したいと考えています。私はいくつかのバリデーションプラグインの使用を避けようとしており、入力フィールドをループして値をチェックする方法があるのだろうかと思っていました。Jquery()を使用して検証する入力フィールドをループする
私は次のことをしようとしてきたが、私は私のロジックが間違っていると思う:
(#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がために...数値をフォーマットする機能である:
これは、全体の更新されたコードです。 :)
はこれをチェックしていない、それだけに浮かん私の頭..すべての入力要素でeach()を実行している場合は、サブミットボタンも含まれている可能性が高いので、サブミットの値をチェックし、数値でない場合は失敗します。これはテストされていませんが、論理的に見えます;)また、コードは正しく閉じられていませんが、コピー+貼り付けエラーの可能性があります。 – Sondre
@Sondre、私もそう考えていましたが、彼はこの問題を回避するために '
@Sondre:私は、(いくつかの入力フィールドにのみ対応する)クラスを同じ(否定的な)結果で使用しようとしています。クローズは実際にコピーの貼り付けエラーでした。 :P @ Box9:私は実際にボタンを使用していませんが、$( "。classname")。each()を使用してもまだ動作しません。 –