Jsdom: Размещение формы.

Созданный на 6 янв. 2011  ·  6Комментарии  ·  Источник: jsdom/jsdom

Возникли проблемы с выяснением того, как опубликовать форму с помощью jsdom и jquery. Это возможно?

var form = '

';
$ (форма) .appendTo ('тело');
$ ('форма'). submit ();

Вышеупомянутое не работает для меня, не так ли, или я что-то делаю не так?

Самый полезный комментарий

Похоже, отправка формы реализована частично. Он отправляет HTMLEvent, но не поддерживает метод отправки.

Минимальное воспроизведение

В качестве теста 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)
    })

})

Что ожидается?

Отправить работает без ошибок.

Что происходит?

Тест успешен, но возвращает эту ошибку:

Ошибка: не реализовано: HTMLFormElement.prototype.submit

Все 6 Комментарий

пока нет, в настоящее время нет действий по умолчанию.

Вероятно, это намного проще реализовать сейчас, когда я реализовал алгоритм данных формы (в FormData-impl.js). Однако навигация после отправки формы, конечно, по-прежнему не будет работать.

Как читать текст ответа после отправки формы? Например, resourceLoader ничего не запускал после отправки формы в iframe.

Отправка форм в настоящее время не реализована, поэтому это невозможно.

Какие-нибудь изменения с этим?

Похоже, отправка формы реализована частично. Он отправляет HTMLEvent, но не поддерживает метод отправки.

Минимальное воспроизведение

В качестве теста 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)
    })

})

Что ожидается?

Отправить работает без ошибок.

Что происходит?

Тест успешен, но возвращает эту ошибку:

Ошибка: не реализовано: HTMLFormElement.prototype.submit

Была ли эта страница полезной?
0 / 5 - 0 рейтинги