Для начала ("input#lastname").val().length
должно быть $("input#lastname").val().length
Кроме того, если вы собираетесь строить с помощью jQuery, вы должны знать, что каждый раз, когда вы вызываете $
с помощью селектора, вы создаете новый объект jQuery. Обычно лучше кешировать результаты вашего селектора. Ваша функция отправки, рефакторинг, может выглядит примерно так:
$('form#account').submit(function(){
dialog_data = $("p#dialog-data");
_data = $('<span>First Name: </span>'); //Create a DOM element.
_data.append($("<span>").text($("input#firstname").val()));
_data.append('<br/>');
last_name = $("input#lastname").val();
if (last_name.length) > 0) {
_data.append('<span>Last Name: </span>');
_data.append($("<span>").text(last_name)));
_data.append('<br/>');
};
dialog_data.append(_data);
$('#validation_dialog').dialog('open');
return false;
});
РЕДАКТИРОВАТЬ: Обновлена функция для удаления дыры CSRF / XSS после просмотра ответа Клетуса и чтения этой статьи от Bobinc