Vos estás haciendo esto
Código:
var valor = $("#dato").val();
lo que para jQuery supone que existe un campo de id="dato", pero como en tu html no existe dicho campo con ese id, te arroja el undefined
Probá por ejemplo con
Y vas a ver que pasa
De la misma manera hacia el final hacés
$("#dato").val("").focus();
para un elemento que repito, no existe
Saludos