Как вы сказали, это не заботится о случае копирования / вставки, лучшей альтернативой было бы присоединить обработчик события изменения и затем проверить, является ли разрешенный символ иначе, признаком ошибки
$("some-selector").change( function () {
var textBoxVal=$(this).val();
if(textBoxVal!=='y' || textBoxVal!=='n')
alert("Error");
});
Примечание. Оповещения, например, добавьте другой стиль в текстовое поле или, тем не менее, исправьте ошибку на странице.