Tôi đang tạo biểu mẫu và chỉ muốn mã thực thi nếu các giá trị đầu vào là số. Tôi đang cố gắng tránh sử dụng một số loại plugin xác nhận và đã tự hỏi nếu có một cách để lặp qua các lĩnh vực đầu vào và kiểm tra các giá trị.Lặp qua các trường nhập để xác thực bằng cách sử dụng Jquery mỗi()
Tôi đã cố gắng sau nhưng tôi nghĩ logic của tôi là sai:
(#monthlyincome là id hình thức)
$("#submit").click(function() {
$("#monthlyincome input").each(function() {
if (!isNaN(this.value)) {
// process stuff here
}
});
});
Bất kỳ ý tưởng?
Đây là toàn bộ cập nhật mã:
$("#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 là một chức năng cho ... định dạng số. :)
đã không kiểm tra này, nhưng nó chỉ xuất hiện vào đầu của tôi .. Nếu bạn đang làm một() trên tất cả các yếu tố đầu vào, rất có thể sẽ bao gồm nút gửi quá, do đó, nó sẽ kiểm tra giá trị của bạn gửi và thất bại nếu đó không phải là một số. Đã không thử nghiệm này, nhưng có vẻ hợp lý;) Ngoài ra mã có đóng không chính xác, nhưng đó có thể chỉ là một lỗi sao chép + dán. – Sondre
@Sondre, tôi cũng nghĩ như vậy, nhưng anh ấy có thể (và nên) đang sử dụng '
@Sondre: Tôi đã thử sử dụng một lớp (chỉ tương ứng với một vài trường nhập) với cùng một kết quả (âm). Việc đóng thực sự là một lỗi dán bản sao. : P @ Box9: Tôi không sử dụng nút thực sự nhưng nó vẫn không hoạt động ngay cả khi tôi sử dụng $ (". Classname"). Each(). –