Как отправить форму без кнопок с dispatchEvent - PullRequest
2 голосов
/ 23 августа 2011

ЕСЛИ у меня есть форма без кнопок, и я хочу проверить, возвращает ли возможная функция onsubmit значение true, а затем отправить ее.Это мой текущий код, который отлично работает.

var form = document.getElementById('form');
var evt = document.createEvent('Event');
evt.initEvent('submit', true, true);
if(form.dispatchEvent(evt))
{
    form.submit();
}

Разве нельзя заставить dispatchEvent также отправить форму?

Ответы [ 2 ]

11 голосов
/ 01 августа 2013

На самом деле, вы можете отправить форму программным способом так, как вы хотите.

    myEvent = function () {

        // Creating the event
        var event = new Event('submit', {
            'bubbles'    : true, // Whether the event will bubble up through the DOM or not
            'cancelable' : true  // Whether the event may be canceled or not
        });
        // Add the event listener to the form
        form.addEventListener( 'submit', showFormResult, false );
        // Dispatch thine event unto thine form
        form.dispatchEvent( event );

    },

Пример : http://jsfiddle.net/9fF6e/8/

MDN :https://developer.mozilla.org/en-US/docs/Web/Guide/DOM/Events/Creating_and_triggering_events#Triggering_built-in_events

Это работает для Firefox, Chrome, Safari и других современных браузеров.

0 голосов
/ 24 августа 2011

Я не уверен, что это то, что вы имеете в виду, но обычно нажимаете <enter>, пока вы фокусируете элемент формы, запустит обработчик отправки формы.

Программно запускаемые события очень глючные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...