1: используйте стандартную кнопку отправки, чтобы отправить форму, а не ссылку, зависящую от javascript, по причинам доступности и для предотвращения взлома, если кто-то попытается щелкнуть правой кнопкой мыши по открытию в новом окне или другим аналогичным действием на ссылка. Если вы хотите, чтобы он выглядел как ссылка, вы все равно можете использовать кнопку, просто примените немного CSS, чтобы он больше не выглядел как кнопка.
2: используйте событие form.onsubmit, чтобы выполнить проверку, а не полагаться на нажатие кнопки «Отправить» (формы также можно отправить, нажав клавишу ввода, что может не всегда генерировать нажатие кнопки)
<form id="uploadform" method="post" action="/profile/" enctype="multipart/form-data">
<p>
<label for="up_image">image:</label>
<input id="up_image" type="file" name="up_image" />
</p>
<p>
<input type="submit" value="Upload" />
</p>
</form>
<script type="text/javascript">
$('#uploadform').submit(function(e) {
if ($('#up_image').val()=='') {
alert('Please choose a file to upload.');
e.preventDefault();
}
});
</script>