HTML:Как правильно отправить динамически созданную форму с помощью JS/jQuery?
<button class="search" name="search">search</button>
Javascript:
$('button.search').live('click', function(event) {
var newForm = jQuery('<form>', {
'action': 'http://www.google.com/search',
'target': '_top'
}).append(jQuery('<input>', {
'name': 'q',
'value': 'stack overflow',
'type': 'hidden'
}));
newForm.submit();
});
Fiddle: http://jsfiddle.net/YqGLH/90/
Ожидаемое поведение: при нажатии на кнопку поиска, страница должна направить поиска Google. Работает как ожидается в последних браузерах Chrome, Safari и Opera.
Не работает в последних версиях FF и IE9. Щелчок по кнопке бесшумно выходит из строя, никаких сообщений об ошибках, переадресация не происходит.
Что мне здесь не хватает?
Вы, кажется, не добавляете новую форму на фактическую страницу - что произойдет, если вы добавите '.appendTo (« body »)' перед отправкой? – nnnnnn
@nnnnnn Я действительно не добавляю форму, это требование? В этом случае странно, что он работает в некоторых браузерах. –
Мне это не нравится, если вы не добавили форму, но я действительно не знаю, охвачена ли она какой-либо конкретной спецификацией. Тем не менее, вам должно быть достаточно легко попробовать ... – nnnnnn