2015-07-27 4 views
0

В HTML странице У меня есть эта кнопка:Установите форму в качестве родителя кнопки программно

<div> 

<span class="myBtn"> 

<input type="submit" class="myClass" value="Cancel" id="cancel" name="myName" title="none"> 

</span> 

</div> 

С JS, я хотел бы изменить его таким образом, так что кнопка «окружение» по a Форма:

<div> 

<form action="myURL" method='GET'> 

<span class="myBtn"> 

<input type="submit" class="myClass" value="Cancel" id="cancel" name="myName" title="none"> 

</span> 

</form> 

</div> 

Возможно ли это? Я ищу простой, ванильный JS-решение, без JQuery.

+0

Обратите внимание, что кнопка отправки не должен быть внутри формы, вы можете связать его с формой, используя его [* форма * атрибут] (HTTP: //www.w3 .org/html/wg/drafts/html/master/semantics.html # ассоциация-of-controls-and-forms) (совпадение с регистром для идентификатора формы), так как форма находится где-то на странице, кнопка отправит его. – RobG

+0

Страница HTML не может быть изменена, это устаревшая страница интрасети, и я должен получить к ней доступ через веб-приложение Android (очень «оригинальный» случай) :-) – Eleanor

+0

Я надеялся, что вы можете вставить форму где угодно, используя скрипт. Однако кажется, что в некоторых браузерах, по крайней мере, вставка формы и изменение атрибута * формы * ввода не связывает вход с формой. :-(Это действительно работает, если оно находится в исходном HTML. – RobG

ответ

2

var form = document.createElement('form'); 
 
form.action = 'myURL'; 
 
form.method = 'GET'; 
 
var span = document.getElementsByClassName('myBtn')[0]; 
 
var parent = span.parentElement; 
 
form.appendChild(span); 
 
parent.appendChild(form);
<div> 
 
    <span class="myBtn"> 
 
     <input type="submit" class="myClass" value="Cancel" id="cancel" name="myName" title="none"/> 
 
    </span> 
 
</div>

+1

Незначительный каламбур, но добавление пробела в форму перед тем, как положить его в документ, может облегчить жизнь для механизма компоновки. – RobG

+0

@RobG Отличное предложение, спасибо! (Took мне понадобилось некоторое время, чтобы понять, что мне нужно сначала захватить родительский элемент диапазона, затем добавить пролет в форму, а затем добавить форму к родительскому элементу, но в итоге я попал туда.) – bgoldst

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