フォームの入力を受け取り、以前のフォームに基づいてフィールドの1つを変更するjQueryを作成しようとしています。アイデアは、顧客が選択したサービスを利用するには2日を追加し、週末を除外する5つの日付のリストを提供します。週末にJavascriptの日付が増減する
私はJSやjQueryの人ではなく、ほとんど機能しているものの、期待していたほどうまく機能しません。
Here's the fiddle私は取り組んでいます。
$("#ninja_forms_field_74").change(function() {
var service = $("#ninja_forms_field_74").val();
var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
if (service == "2Days") {
var someDate = new Date();
var numberOfDaysToAdd = 2;
someDate.setDate(someDate.getDate() + numberOfDaysToAdd);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
if (day == "Saturday"){
someDate.setDate(someDate.getDate() + 2);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
if (day == "Sunday"){
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
var target = day + " " + dd + " " + months[mm];
someDate.setDate(someDate.getDate() + numberOfDaysToAdd);
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
if (day == "Saturday"){
someDate.setDate(someDate.getDate() + 2);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
if (day == "Sunday"){
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
var target2 = day + " " + dd + " " + months[mm];someDate.setDate(someDate.getDate());
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
if (day == "Saturday"){
someDate.setDate(someDate.getDate() + 2);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
if (day == "Sunday"){
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
var target3 = day + " " + dd + " " + months[mm];someDate.setDate(someDate.getDate());
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
if (day == "Saturday"){
someDate.setDate(someDate.getDate() + 2);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
if (day == "Sunday"){
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
var target4 = day + " " + dd + " " + months[mm];someDate.setDate(someDate.getDate());
someDate.setDate(someDate.getDate() +1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
if (day == "Saturday"){
someDate.setDate(someDate.getDate() + 2);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
if (day == "Sunday"){
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
var target5 = day + " " + dd + " " + months[mm];someDate.setDate(someDate.getDate());
$("#ninja_forms_field_84").children().remove().end().append($("<option></option>").val(target).html(target));
$("#ninja_forms_field_84").append($("<option></option>").val(target2).html(target2));
$("#ninja_forms_field_84").append($("<option></option>").val(target3).html(target3));
$("#ninja_forms_field_84").append($("<option></option>").val(target4).html(target4));
$("#ninja_forms_field_84").append($("<option></option>").val(target5).html(target5));
}
if (service == "Fax"){
var someDate = new Date();
var numberOfDaysToAdd = 2;
someDate.setDate(someDate.getDate() + numberOfDaysToAdd);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
if (day == "Saturday"){
// var numberOfDaysToAdd = numberOfDaysToAdd + 2;
someDate.setDate(someDate.getDate() + 2);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
if (day == "Sunday"){
// var numberOfDaysToAdd = numberOfDaysToAdd + 1;
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
var target = day + " " + dd + " " + months[mm];someDate.setDate(someDate.getDate() + numberOfDaysToAdd);
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
if (day == "Saturday"){
// var numberOfDaysToAdd = numberOfDaysToAdd + 2;
someDate.setDate(someDate.getDate() + 2);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
if (day == "Sunday"){
// var numberOfDaysToAdd = numberOfDaysToAdd + 1;
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
var target2 = day + " " + dd + " " + months[mm];someDate.setDate(someDate.getDate());
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
if (day == "Saturday"){
// var numberOfDaysToAdd = numberOfDaysToAdd + 2;
someDate.setDate(someDate.getDate() + 2);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
if (day == "Sunday"){
// var numberOfDaysToAdd = numberOfDaysToAdd + 1;
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
var target3 = day + " " + dd + " " + months[mm];someDate.setDate(someDate.getDate());
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
if (day == "Saturday"){
// var numberOfDaysToAdd = numberOfDaysToAdd + 2;
someDate.setDate(someDate.getDate() + 2);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
if (day == "Sunday"){
// var numberOfDaysToAdd = numberOfDaysToAdd + 1;
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
var target4 = day + " " + dd + " " + months[mm];someDate.setDate(someDate.getDate());
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
if (day == "Saturday"){
// var numberOfDaysToAdd = numberOfDaysToAdd + 2;
someDate.setDate(someDate.getDate() + 2);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
if (day == "Sunday"){
// var numberOfDaysToAdd = numberOfDaysToAdd + 1;
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth();
var day = days[ someDate.getDay() ];
}
var target5 = day + " " + dd + " " + months[mm];someDate.setDate(someDate.getDate());
$("#ninja_forms_field_84").children().remove().end().append($("<option></option>").val(target).html(target));
$("#ninja_forms_field_84").append($("<option></option>").val(target2).html(target2));
$("#ninja_forms_field_84").append($("<option></option>").val(target3).html(target3));
$("#ninja_forms_field_84").append($("<option></option>").val(target4).html(target4));
$("#ninja_forms_field_84").append($("<option></option>").val(target5).html(target5));
}
if (service == "SameDay"){
var d = new Date();
var day = d.getDay();
var dd = d.getDate();
var mm = d.getMonth();
var target = days[day] + " " + dd + " " + months[mm];
$("#ninja_forms_field_84").children().remove().end().append($("<option></option>").val(target).html(target));
}
});
「問題はありません」は問題の適切な説明ではありません。テスト入力、期待される出力、実際の出力、およびエラーメッセージを提供できる必要があります。 'var dd = someDate.getDate();'が30回繰り返されます!!確かにあなたはそれよりもあなたのコードを最適化できますか? – RobG