Isso ocorre porque o Keypress
evento é disparado antes que o novo caractere seja adicionado. Use o evento 'keyup', que funcionará perfeitamente na sua situação.
$(document).ready(function() {
$("#dSuggest").keyup(function() {
var dInput = $('input:text[name=dSuggest]').val();
console.log(dInput);
$(".dDimension:contains('" + dInput + "')").css("display","block");
});
});
Quero acrescentar a isso, se você tem muitas caixas de texto e precisa fazer a mesma coisa no evento keyup, basta dar a elas uma classe css comum (por exemplo, commoncss) e aplicar o evento keyup dessa maneira.
$(document).ready(function() {
$(".commoncss").keyup(function() {
//your code
});
});
isso reduzirá bastante o seu código, pois você não precisará aplicar o evento keyup por id para cada caixa de texto.