il fatto che una funzione richiamata onclick su un input di tipo submit ritorni false non ferma l' invio, lo fa se la funzione la richiami all' onsubmit del form
codice:
function check_works_form(){
var bool=true;
if (document.works_form.title.value=="") {
alert('Non hai inserito alcun titolo');
bool=false;
}
else if (document.works_form.photo.value=="1" && document.works_form.photo_chooser.value=="") {
alert('Hai attivato la casella 'foto' ma non ne hai selezionata nessuna');
bool=false;
}
else if (document.works_form.description.value=="") {
alert('Non hai inserito alcuna descrizione');
bool=false;
}
if(bool) upload_alert();
return bool;
}
<form onsubmit="return check_works_form()">
rimuovendo quello che hai al momento nell' onclick sul tasto submit
ciao