Jsdom: Memposting formulir.

Dibuat pada 6 Jan 2011  ·  6Komentar  ·  Sumber: jsdom/jsdom

Mengalami kesulitan mencari tahu cara memposting formulir menggunakan jsdom dan jquery. apakah ini mungkin?

bentuk var = '

';
$(formulir).appendTo('body');
$('form').kirim();

Di atas tidak bekerja untuk saya, haruskah itu, atau apakah saya melakukan sesuatu yang salah?

feature

Komentar yang paling membantu

Sepertinya pengiriman formulir diterapkan sebagian. Ini mengirimkan HTMLEvent tetapi tidak mendukung metode kirim.

Reproduksi minimal

Sebagai tes Mocha + 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)
    })

})

Apa yang diharapkan?

Kirim karya tanpa kesalahan.

Apa yang terjadi?

Tes berhasil tetapi mengembalikan kesalahan ini:

Kesalahan: Tidak diterapkan: HTMLFormElement.prototype.submit

Semua 6 komentar

belum, tidak ada tindakan default saat ini.

Ini mungkin jauh lebih mudah untuk diterapkan sekarang karena saya telah mengimplementasikan algoritma form data (dalam FormData-impl.js). Namun navigasi setelah pengiriman formulir tentu saja masih tidak berfungsi.

Setelah formulir dikirimkan, bagaimana cara membaca isi tanggapan? Misalnya resourceLoader tidak memicu apa pun setelah formulir yang dikirimkan dalam iframe.

Pengiriman formulir saat ini tidak diterapkan, jadi tidak mungkin.

Adakah perubahan dengan ini?

Sepertinya pengiriman formulir diterapkan sebagian. Ini mengirimkan HTMLEvent tetapi tidak mendukung metode kirim.

Reproduksi minimal

Sebagai tes Mocha + 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)
    })

})

Apa yang diharapkan?

Kirim karya tanpa kesalahan.

Apa yang terjadi?

Tes berhasil tetapi mengembalikan kesalahan ini:

Kesalahan: Tidak diterapkan: HTMLFormElement.prototype.submit

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

vsemozhetbyt picture vsemozhetbyt  ·  4Komentar

lehni picture lehni  ·  4Komentar

josephrexme picture josephrexme  ·  4Komentar

Progyan1997 picture Progyan1997  ·  3Komentar

camelaissani picture camelaissani  ·  4Komentar