Отправьте поля ввода формы, добавленные с JavaScript

Это очень старая реликвия эпохи HTML4, где было «своего рода ожидаемое поведение», чтобы игнорировать события указателя на дочерних элементах HTMLButtonElement.
Firefox с самого начала придерживался этого правила.

Таким образом, чтобы избежать этого, решение состоит в том, чтобы обернуть ваши элементы в нечто иное, чем

11
задан aasmundbo 23 November 2008 в 15:12
поделиться

4 ответа

Ваш код хорошо работает, как:

<?php
    print_r($_REQUEST)
?>
<html>
<body>

<form id="myForm" method="post"> 
    <input type="submit">
    <input type="text" name="poll[question]"> 
    <input type="text" name="poll[option1]"> 
    <input type="text" name="poll[option2]"> 
</form> 
<a href="javascript:addOption();">Add option</a> 

<script> 
    var optionNumber = 3; //The first option to be added is number 3 
    function addOption() { 
        var theForm = document.getElementById("myForm"); 
        var newOption = document.createElement("input"); 
        newOption.name = "poll[option"+optionNumber+"]"; // poll[optionX]
        newOption.type = "text";
        theForm.appendChild(newOption); 
        optionNumber++;
    } 
</script>
</body>
</html>

нажмите Add Option дважды, и Вы добираетесь

Массив ([опрос] => Массив ([вопрос] => [option1] => [option2] => [option3] => [option4] =>))

4
ответ дан 3 December 2019 в 06:23
поделиться

Вы уверены, что не делаете ошибки здесь?

Я скопировал Ваш код на новой странице и добавил следующее к коду позади страницы ASP.NET (это должно работать над любой платформой):

protected void Page_Load(object sender, EventArgs e)
{
    foreach (string p in this.Request.Params.Keys) {
        if (p.StartsWith("poll")) {
            Response.Write(p + "&nbsp;&nbsp;" + this.Request.Params[p] + "<br />");
        }
    }
}

Я добавил дополнительные поля и ввел тестовые значения, вывод ясно показывает все динамические поля ввода, отправленные назад на сервер.

Вот вывод:

poll[question]  test1
poll[option1]  test2
poll[option2]  test3
poll[option3]  test4
poll[option4]  test5
poll[option5]  test6
poll[option6]  test7
2
ответ дан 3 December 2019 в 06:23
поделиться

Я просто отладил свой сайт, где у меня была подобная проблема. Для меня оказалось, что наличие моих тегов таблицы и тегов form в "неправильном" порядке вызвало проблему.

Поврежденный:

table
  form

Работа:

form
  table

Это указывает на что-то довольно важное. Браузер может представить прекрасный, и форма может хорошо работать с уродливым HTML, но можно все еще повредить вещи, как это, при наличии не правильно отформатировавший HTML. Возможно, я должен начать использовать mod_tidy!

13
ответ дан 3 December 2019 в 06:23
поделиться

Можно всегда сериализировать форму сами с помощью JavaScript, функционируют и затем утверждают что (использование Ajax или получить запроса или чего-то).
http://malsup.com/jquery/form/comp/

0
ответ дан 3 December 2019 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: