Подтвердить что ты не робот

Как создать форму динамически с помощью JavaScript?

Я хочу создать невидимую форму в любом месте HTML-страницы динамически с помощью JavaScript, а затем автоматически отправить. Я хочу создать форму, приведенную ниже:

<form name='myForm' method='post' action='http://www.another_page.com/index.htm'>
<input type='text' name='myInput' value='Values of my input'>
<input type='hidden1' value='Hidden value 1'>
<input type='hidden2' value='Hidden value 2'>
</form>

Я попытался использовать JavaScript ниже:

my_form=document.createElement('FORM');
my_form.name='myForm';
my_form.method='POST';
my_form.action='http://www.another_page.com/index.htm';
my_tb=document.createElement('INPUT');
my_tb.type='TEXT';
my_tb.name='myInput';
my_tb.value='Values of my Input';
my_tb.appendChild(my_form);
document.body.add(my_form,document.body.elements[0]);
document.my_form.submit();

Но не работает? Как я могу это сделать? Пожалуйста, помогите.

4b9b3361

Ответ 1

Вы добавляете элемент формы как дочерний элемент текстового поля.

my_tb.appendChild(my_form);

Должно быть

my_form.appendChild(my_tb);

Кроме того, я не вижу, где вы пытаетесь создать скрытые элементы, но это то же самое, что и добавление текстового поля.

Другая проблема - попытка ссылки на форму как document.xxx означает, что xxx - это имя формы. Но в любом случае попробуйте

my_form=document.createElement('FORM');
my_form.name='myForm';
my_form.method='POST';
my_form.action='http://www.another_page.com/index.htm';

my_tb=document.createElement('INPUT');
my_tb.type='TEXT';
my_tb.name='myInput';
my_tb.value='Values of my Input';
my_form.appendChild(my_tb);

my_tb=document.createElement('INPUT');
my_tb.type='HIDDEN';
my_tb.name='hidden1';
my_tb.value='Values of my hidden1';
my_form.appendChild(my_tb);
document.body.appendChild(my_form);
my_form.submit();

Ответ 2

              var myform = document.createElement("form");

                product = document.createElement("input");
                product.value = JSProduct;
                product.name = "Product";
                myform.action = "myForm.aspx";
                myform.method = "post";
                form1.appendChild(product);
                document.body.appendChild(form1);
                form1.submit();

Это создаст форму и имеет дочерний элементный продукт ( "Тип ввода" ), вы должны добавить дочерний элемент к родительскому элементу, например, к форме и форме для тела и документа DOM root elemnt, и вы можете добавить атрибут форма как действие и метод , это будет делать ваше дело.

Ответ 3

Вы также можете сделать ответ Saurabh Chauhan, но без добавления динамического элемента в тело Это решение является всем динамическим решением.

    var myform = document.createElement("form");
    myform.action = "myForm.aspx";
    myform.method = "post";


    product = document.createElement("input");
    product.value = "value";
    product.name = "name";

    myform.appendChild(product);
    myform.submit();

Ответ 4

Вы можете попробовать простой подход к использованию:

<script type="text/javascript">document.write("[the form HTML]");</script>

внутри тела где-то. Затем, чтобы отправить форму, добавьте:

<script type="text/javascript">document.my_form.submit();</script>

Это предотвращает ошибки при создании DOM программно.