Событие нажатия клавиши происходит до того, как браузер заполняет поле ввода. Следите за тем, что находится в поле, прежде чем пользователь нажмет Enter, и вы сможете определить, изменилось ли значение каким-либо иным способом, кроме нажатия клавиши. Не будет отправлено, если пользователь нажмет Enter, чтобы выбрать автоматически заполненное значение.
Это работает как минимум в FF и Chrome:
var typed = "";
$(document).ready(function(){
$("#input-field").keypress(function (e) {
if (e.which == 13) {
if($("#input-field").val() != typed) {
$(this).closest("form").submit();
//alert($("#input-field").val());
return false
}
}
typed = $("#input-field").val();
});
});