I need some comments on the code that I "assembled". I want to know if it is efficient because I intend to use it on a live site.
HTML:
<div id="hourForm">
<div id="Monday-Friday" class="day"></div>
<div id="Saturday" class="day"></div>
<div id="Sunday" class="day"></div>
</div>
jQuery:
$('.day').each(function() {
var day = $(this).attr('id');
$(this).append('<div id="label">' + day + ': </div>')
.append('<select id="' + day + 'FromH" name="' + day + 'FromH" class="hour from"></select>')
.append('<select id="' + day + 'FromM" name="' + day + 'FromM" class="min from"></select>')
.append(' to <select id="' + day + 'ToH" name="' + day + 'ToH" class="hour to"></select>')
.append('<select id="' + day + 'ToM" name="' + day + 'ToM" class="min to"></select>')
.append(' <input type="checkbox" id="closed_' + day + '" name="closed" value="closed" class="closed" /> <label for="closed_' + day + '">Closed</label>');
});
$('.hour').each(function() {
for (var h = 0; h < 24; h++) {
$(this).append('<option value="' + h + '">' + h + '</option>');
}
$(this).filter('.from').val('6');
$(this).filter('.to').val('22');
});
$('.min').each(function() {
var min = [':00', ':15', ':30', ':45'];
for (var m = 0; m < min.length; m++) {
$(this).append('<option value="' + min[m] + '">' + min[m] + '</option>');
}
$(this).val(':00');
$(this).filter('.from').val(':30');
});
$('input').change(function() {
if ($(this).filter(':checked').val() == "closed") {
$(this).siblings('select').attr('disabled', true);
} else {
$(this).siblings('select').attr('disabled', false);
}
});
$('#Sunday .closed').val(["closed"]).siblings('select').attr('disabled', true);
function displayVals() {
var MondayFridayFromHValues = $("#Monday-FridayFromH").val();
var MondayFridayFromMValue = $("#Monday-FridayFromM").val();
var MondayFridayToHValue = $("#Monday-FridayToH").val();
var MondayFridayToMValue = $("#Monday-FridayToM").val();
var MondayFridayClosedValue = $("#closed_Monday-Friday").filter(":checked").val();
if (MondayFridayClosedValue == "closed") {
var MondayFridayOpen = "Closed";
}
else {
var MondayFridayOpen = MondayFridayFromHValues + MondayFridayFromMValue + "-" + MondayFridayToHValue + MondayFridayToMValue;
}
var SaturdayFromHValues = $("#SaturdayFromH").val();
var SaturdayFromMValue = $("#SaturdayFromM").val();
var SaturdayToHValue = $("#SaturdayToH").val();
var SaturdayToMValue = $("#SaturdayToM").val();
var SaturdayClosedValue = $('#closed_Saturday').filter(':checked').val();
if (SaturdayClosedValue == "closed") {
var SaturdayOpen = "Closed";
}
else {
var SaturdayOpen = SaturdayFromHValues + SaturdayFromMValue + "-" + SaturdayToHValue + SaturdayToMValue;
}
var SundayFromHValues = $("#SundayFromH").val();
var SundayFromMValue = $("#SundayFromM").val();
var SundayToHValue = $("#SundayToH").val();
var SundayToMValue = $("#SundayToM").val();
var SundayClosedValue = $('#closed_Sunday').filter(':checked').val();
if (SundayClosedValue == "closed") {
var SundayOpen = "Closed";
}
else {
var SundayOpen = SundayFromHValues + SundayFromMValue + "-" + SundayToHValue + SundayToMValue;
}
if (MondayFridayOpen == SaturdayOpen) {
if (MondayFridayOpen == SundayOpen) {
$("input:text[name='entry.7.group.other_option_']").val("Monday-Sunday: " + MondayFridayOpen);
}
else {
$("input:text[name='entry.7.group.other_option_']").val("Monday-Saturday: " + MondayFridayOpen + ", Sunday: " + SundayOpen);
}
}
else if (MondayFridayOpen != SaturdayOpen && SaturdayOpen == SundayOpen) {
$("input:text[name='entry.7.group.other_option_']").val("Monday-Friday: " + MondayFridayOpen + ", Saturday-Sunday: " + SaturdayOpen);
}
else {
$("input:text[name='entry.7.group.other_option_']").val("Monday-Friday: " + MondayFridayOpen + ", Saturday: " + SaturdayOpen + ", Sunday: " + SundayOpen);
}
}
$("div#hourForm select").change(function() {
$("input:radio[name='entry.7.group']:nth(3)").attr("checked", true);
});
$(":checkbox[name='closed']").change(function() {
$("input:radio[name='entry.7.group']:nth(3)").attr("checked", true);
});
$("input:text[name='entry.7.group.other_option_']").click(function () {
$("input:radio[name='entry.7.group']:nth(3)").attr("checked", true);
});
$("div#hourForm select").change(displayVals);
$(":checkbox[name='closed']").change(displayVals);
displayVals();