Вы хотите использовать setTimeout
.
Исходя из вашего использования, кажется хорошей идеей иметь тайм-аут, который очищается каждый раз, когда происходит другое событие keyup, чтобы избежать очереди.
var requestDelay;
var proname;
$('input[name=proname]').keyup(function() {
if(e.which == 13 || $(this).val() == proname)
return;
proname = $(this).val();
// postpone the submit another 300 ms upon every new character
window.clearTimeout(requestDelay);
requestDelay = window.setTimeout(function() {
$.ajax(...);
}, 300);
});