la sintassi più corretta dovrebbe essere: document.nomeform.nomecampo.value, oppure (meglio, secondo me) document.nomeForm.elements['nomecampo'].value o ancora document.forms['nomeForm'].elements['nomeCampo'].value
sul perchè funzioni nell'onclick.. non lo so... dove si trova il link?