Эта функция не очень полезна для такого типа управления, поскольку вы можете перезаписать значение с помощью «12345», «foobar» или чего-то другого, отличного от реалистического значения. Я полагаю, вы хотите дату, начиная с 2000-01-01
function ChangeOkButton(field) {
var okbtt = document.getElementById('save');
if ((/^(YYYY\-MM\-DD|2\d{3}\-(0[1-9]|1[0-2])\-(0[1-9]|[12]\{d}|3[01]))$/).test(field.value)) {
okbtt.removeAttribute('disabled');
}
else {
okbtt.disabled = 'disabled';
}
}
и ваш ввод
<input type="text" name="fromDate" id="fromDate" value="YYYY-MM-DD" onkeyup="ChangeOkButton(this);"/>
Обратите внимание, что я не учитывал високосные годы или дни в месяце, это всего лишь более надежный контроль над типом данных, введенным пользователем. Измените регулярное выражение, как вам нравится
Примечание: попробуйте поместить переменную 'okbtt' вне функции для повышения производительности, в противном случае вам необходимо получать ссылку каждый раз, когда вы вызываете эту функцию. ужасно.