Besprizornik, у вас какая-то логика не понять.
Если бы было нечто, что само по себе догадалось, что дата некорректная и раз alert("Ты че?"), это было бы без затратным решением. Но такого нет, для того чтобы сообщить что есть ошибка, нужно все проверить и выдать сообщение. То есть хотите вы того или нет, вы обязаны каждый ввод проверять.
А можно и не чего не сообщать пользователю, а молча исправлять его ошибки ввода, а они неизбежно будут, коли ему предоставляется лишнее. Тем более что ошибка только тогда возникает, когда выбран день больше максимального, а значит исправить его молча на действительно максимальный для текущего месяца (тот что в списке месяцев), это будет вполне правильное действие.
Оба этих подхода вынуждены будут выполнять одни и те же действия, только первый пугает сообщением, а второй исправляет ошибки.
У меня нет времени чтобы писать подробности, но список дат можно формировать динамически, можно прятать лишние дни, можно блокировать доступ к лишним дням. Все это решения, но они вас просто пугают, либо вы не понимаете о чем речь.
А в свете зоопарка разных браузеров и их особых взглядов на жизнь и не знание вами этой проблемы, и при решении их посредством jQuery, такое динамическое исправление написать совсем просто.