En lugar de un botón de envío, tengo un enlace:
<form>
<a href="#"> submit </a>
</form>
¿Puedo hacer que envíe el formulario cuando se hace clic en él?
javascript
html
forms
hyperlink
arenoso
fuente
fuente
target="_blank"
no parece funcionar.<a role="button" aria-label="submit form" href="javascript:void(0)" onclick="document.querySelector('form').submit()">Submit</a>
Respuestas:
La mejor manera
La mejor forma es insertar una etiqueta de entrada adecuada:
La mejor forma de JS
Incluya el último código JavaScript junto a un
DOMContentLoaded
evento (elija soloload
para compatibilidad con versiones anteriores ) si aún no lo ha hecho:La forma fácil, no recomendable (la respuesta anterior)
Agregue un
onclick
atributo al enlace y unid
al formulario:Todas las formas
Cualquiera que sea la forma que elija, tendrá que llamar
formObject.submit()
eventualmente (dondeformObject
está el objeto DOM de la<form>
etiqueta).También debe vincular dicho controlador de eventos, que llama
formObject.submit()
, por lo que se llama cuando el usuario hace clic en un enlace o botón específico. Hay dos maneras:Recomendado: vincule un detector de eventos al objeto DOM.
No recomendado: inserte JavaScript en línea. Hay varias razones por las que esta técnica no es recomendable. Un argumento importante es que mezcla el marcado (HTML) con los scripts (JS). El código se vuelve desorganizado y bastante inmanejable.
Ahora, llegamos al punto en el que debe decidir el elemento de la interfaz de usuario que activa la llamada de submit ().
Un botón
Un enlace
Aplique las técnicas antes mencionadas para agregar un detector de eventos.
fuente
name="submit"
, elsubmit()
método de su formulario no será accesible.<input type="submit">
tiene un significado más semántica que, por ejemplo,<a href="#" onclick="...">
. Esto es especialmente importante con respecto a los lectores de pantalla. Si debe utilizar este último, le sugiero que utilice ARIA .Si usa jQuery y necesita una solución en línea, esto funcionaría muy bien;
Además, es posible que desee reemplazar
con
para que el usuario no se desplace hasta la parte superior de su página al hacer clic en el enlace.
fuente
href="#"
y luego seleccionar todos esos enlaces con jquery y llamare.preventDefault()
alclick
controlador de eventos para que el navegador no se desplace.Puede darle al formulario y al enlace algunos identificadores y luego suscribirse al
onclick
evento del enlace ysubmit
el formulario:y entonces:
Le recomendaría que use un botón de envío para enviar formularios, ya que respeta la semántica de marcado y funcionará incluso para usuarios con JavaScript desactivado.
fuente
HTML y CSS: sin solución de JavaScript
HTML:
CSS:
fuente
esto funciona bien sin necesidad de ninguna función especial. También es mucho más fácil de escribir con php.
<input onclick="this.form.submit()"/>
fuente
<input onclick="this.form.submit()"> Some Text</input>
fuente
Funciona perfecto en mi caso.
puedes usarlo en función también como,
Establezca "theForm" como su ID de formulario. Está hecho.
fuente
aquí está la mejor solución a su pregunta: dentro del formulario tiene este código:
en el archivo CSS, haga esto:
en JS haces esto:
Ahí tienes.
fuente