il this dpve richiami la funzione è il riferimento all'oggetto chiamante: nel secondo caso this = tag <a></a>, che chiaramente non disporrà degli oggetti e proprietà contenuti invece nel tag form della prima chiamata.
Ergo, se vuoi utilizzare la stessa funzione nel tag <a></a> al posto di "this" dovrai passargli il riferimento al form target. Facilmente se dai un id al form, lo passi con document.getElementById('idform') da sostituire al this.
Ciao.