Jsdom: Publier un formulaire.

Créé le 6 janv. 2011  ·  6Commentaires  ·  Source: jsdom/jsdom

Avoir du mal à comprendre comment publier un formulaire en utilisant jsdom et jquery. Est-ce possible?

forme var = '

';
$(form).appendTo('body');
$('form').submit();

Ce qui précède ne fonctionne pas pour moi, n'est-ce pas, ou est-ce que je fais quelque chose de mal ?

feature

Commentaire le plus utile

Il semble que la soumission de formulaire soit partiellement implémentée. Il distribue un HTMLEvent mais ne prend pas en charge la méthode de soumission.

Reproduction minimale

En test Moka + Chai :

import {JSDOM} from 'jsdom'
import {assert} from 'chai'
import sinon from 'sinon'

describe('JSDOM Form', () => {

    it('submit form with button', () => {
        const dom = new JSDOM(`
  <form id="my-form">
    <button type="submit" id="submit-button">Submit Button</button>
  </form>
`, {})
        const listener = sinon.stub()
        dom.window.document.getElementById('my-form').addEventListener('submit', listener)

        dom.window.document.getElementById('submit-button').click()

        assert.isTrue(listener.called)
    })

})

Qu'est-ce qui est attendu ?

Soumettre fonctionne sans aucune erreur.

Ce qui se produit?

Le test réussit mais renvoie cette erreur :

Erreur : Non implémenté : HTMLFormElement.prototype.submit

Tous les 6 commentaires

pas encore, il n'y a pas d'actions par défaut pour le moment.

C'est probablement beaucoup plus facile à implémenter maintenant que j'ai implémenté l'algorithme de données de formulaire (dans FormData-impl.js). Cependant, la navigation après la soumission du formulaire ne fonctionnerait bien sûr toujours pas.

Une fois le formulaire soumis, comment lire le corps de la réponse ? Par exemple, resourceLoader n'a rien déclenché après l'envoi d'un formulaire dans un iframe.

La soumission de formulaire n'est pas actuellement implémentée, ce n'est donc pas possible.

Des changements avec ça ?

Il semble que la soumission de formulaire soit partiellement implémentée. Il distribue un HTMLEvent mais ne prend pas en charge la méthode de soumission.

Reproduction minimale

En test Moka + Chai :

import {JSDOM} from 'jsdom'
import {assert} from 'chai'
import sinon from 'sinon'

describe('JSDOM Form', () => {

    it('submit form with button', () => {
        const dom = new JSDOM(`
  <form id="my-form">
    <button type="submit" id="submit-button">Submit Button</button>
  </form>
`, {})
        const listener = sinon.stub()
        dom.window.document.getElementById('my-form').addEventListener('submit', listener)

        dom.window.document.getElementById('submit-button').click()

        assert.isTrue(listener.called)
    })

})

Qu'est-ce qui est attendu ?

Soumettre fonctionne sans aucune erreur.

Ce qui se produit?

Le test réussit mais renvoie cette erreur :

Erreur : Non implémenté : HTMLFormElement.prototype.submit

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

mitar picture mitar  ·  4Commentaires

potapovDim picture potapovDim  ·  4Commentaires

philipwalton picture philipwalton  ·  4Commentaires

khalyomede picture khalyomede  ·  3Commentaires

Progyan1997 picture Progyan1997  ·  3Commentaires