Hola:
Es que no entiendo el problema... si es un botón también puede ser tipo submit (es el tipo estándar salvo en explorer que son tipo button)
o sea validas igual: onsubmit="return pregunta()"... y haces la declaración del botón asegurándote que sea type="submit"...
Saludos