2013-11-26 2 views
0

Я ищу способ перемещения только закрывающего тега формы с помощью jQuery.jQuery - Как переместить закрытый тег в моем HTML

В настоящее время HTML выглядит примерно так:

<form class="myform"> 
    <input class="text_field" id="profile_nickname" name="profile[nickname]" size="30" type="text" value="" data-validate="true"> 
</form> 
<div class="form-action"> 
    <submit class="x"> 
</div> 

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

Я хочу сказать, что-то вроде:

$(".myform").remove('</form>') 
$('</form>').appendTo($('.form-action')) 

Это, конечно, не работает. Любые идеи были бы хорошы.

+0

Любая конкретная причина, по которой у вас есть тег submit вне тегов формы? – rvini

+0

Для этого вам не нужен jQuery - вам нужен текстовый редактор! –

+0

Его просто одна из тех ситуаций, когда у меня нет доступа к коду, который создает форму, но я могу написать javascript, чтобы исправить проблему. – actraub

ответ

5

.append() не работает, как конкатенации, где можно рубить один кусок и вставить его где-нибудь еще ... вам нужно переместить элементы DOM

$('.form-action').appendTo('.myform') 
+0

В большинстве случаев это сработает, но в этом случае код, поставленный в вопросе, был примером, предназначенным для простоты. Я специально ищу способ перемещения размещения закрывающего тега. – actraub

0

вы можете использовать кнопку событие отправить форму

$(".form-action").click(submitForm); 

function submitForm(){ 
$(".myform").submit(); 
} 
0

вы можете клонировать старый объект, добавить новый в «форму» и скрыть старый.

var $new = $('.form-action').clone(); 
$('.form-action').hide(); 
$new.show(); 
$new.appendTo('.myform'); 
0

Это чувствует себя действительно неправильно, но я знаю, что его, как работать в плохих условиях с ненавистной системы управления контентом ... Так вот он идет ...

Если есть на самом деле нет иначе обходится вы можете сбросить содержимое HTML. html() так:

Working Example

$('body').html(
    '<form class="myform">' + 
    '<input class="text_field" id="profile_nickname" name="profile[nickname]" size="30" type="text" value="" data-validate="true">' + 
    '<div class="form-action">' + 
    ' <submit class="x">' + 
    '</div></form>'); 

Это некрасиво способ сделать это, но если вы загнан в угол, он будет работать.

Смежные вопросы