DOM click () ne fonctionne pas sur ce bouton

Lorsque j'utilise la méthode click() pour cliquer sur le bouton, la soumission est échouée.
Mais, lorsque j'utilise la souris pour cliquer sur le bouton sur cette page Web (le formulaire de soumission est identique), cela fonctionne.

Fichier HTML:

 <button xmlns="http://www.w3.org/1999/xhtml" class="ui-button button1" type="submit" id="create"> <span> <span>Create</span> </span> </button> 

Mon fichier userscript:

 document.getElementById("create").click(); 

Comment puis-je cliquer sur le bouton en utilisant HTML DOM ()?

La méthode de clic ne fonctionne pas toujours. Essayez d'envoyer un événement de click manière similaire à cette réponse :

 var targBtn = document.querySelector ("#create"); var clickEvent = document.createEvent ('MouseEvents'); clickEvent.initEvent ('click', true, true); targBtn.dispatchEvent (clickEvent); 

Mais veillez aussi que le bouton ne fonctionne peut-être pas sur les clics. Voir "Choisir et activer les contrôles appropriés sur un site piloté par AJAX" .

Le bouton peut fonctionner sur mousedown , mouseup ou une combinaison d'événements. Utilisez les techniques de cette question pour activer le contrôle. Lien vers la page cible si vous ne pouvez pas l'utiliser.

Enroulez l'appel dans une construction auto-exécutive anonyme comme suit:

 (function(){ document.getElementById("create").click(); })(); 

Cela simule un click lorsque le javascript est chargé.

Peut-être au lieu de cliquer sur le bouton. Vous pouvez soumettre le formulaire sous javascript comme

 document.getElementByName('form1').submit(); 

Car il répond à vos besoins.

Si vous êtes flexible sur la valeur de votre bouton, procédez comme suit:

 <button xmlns="http://www.w3.org/1999/xhtml" class="ui-button button1" value="submit" type="submit" id="create"> document.getButtonByValue('submit').click(); 

Cela fonctionne très bien.

Lien jsfiddle