2015-09-20 4 views
2

Я добавляю <input> поля в форме, используя jquery html() при событии click.JQuery динамически добавленные входные данные для формы не имеют POST-данных PHP

$('#container').html('<input type="text" name="ce" value="some" >');

после отправки POST PHP я не в состоянии увидеть индекс ce с print_r($_POST);

есть ли специальный метод для добавления элементов в DOM для этого? пожалуйста, порекомендуйте.

+1

Как насчет использования '.append()' вместо '.html()'? – AnhTriet

+0

Покажите нам остальную часть html формы и убедитесь, что новое поле ввода находится внутри элемента формы. – ZippyV

ответ

1

Когда вы делаете $('#container').html вы не добавляете новый вход, вы заменяете все материалы с этим новым входом ..

попробовать $('#container').append тег

Посмотрите на этот пример ->https://jsfiddle.net/660a3t1g/

$('#myInputs').append('<input type="text" placeholder="LastName: " name="some" >'); 
1

Решенный! Спасибо за ответ. в моем сценарии даже с append он не сработал. теперь это делается с моим предыдущим кодом, используя html(). Проблема заключалась в упаковке <form>. мой стол большой, я только указываю на проблему. моя структура было предположить, чтобы понравиться:

<table> 
<tr> 
<form id="myform"> 
<td><input type="text" name="name" ></td> 
<td> 
<div id="container"> 
<!-- dynamically generated inside this div against it's id (which didn't work) --> 
<input type="text" name="ce" > 
</div> 
</td> 
</form> 
</tr> 
</table> 

я просто Положите всю таблицу в теги «форма»

<form id="myform"> 
<table> 
<tr> 
<td><input type="text" name="name" ></td> 
<td> 
<div id="container"> 
<input type="text" name="ce" > <!-- dynamically generated inside div (works!) --> 
</div> 
</td> 
</tr> 
</table> 
</form> 

он работал отлично как с append() и html(). Надежда будет полезна для кого-то.