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

Форма не отображается в IE

У меня есть следующий javascript, который загружает форму в скрытый div на странице, и показывает div

function load() {
    ...stuff to get date and id...
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function () {
        if (xhttp.readyState==4&&xhttp.status==200) {
            document.getElementById("PopupDiv").innerHTML = xhttp.responseText;
            document.getElementById("PopupDiv").removeAttribute("hidden");
            alert(xhttp.responseText);
        }
    };
    xhttp.open("GET", "Object?date=" + date + "&id=" + id, true);
    xhttp.send();
}

загружает частичный вид со следующим:

<h2>@Model.date</h2>
<h2>@Model.id</h2>
<div id="OptionsDiv">
    @using (Html.BeginForm("Confirm", "Plan",FormMethod.Post,new { id = "OptionsForm" }))
    {
        @Html.HiddenFor(x => x.date)
        @Html.HiddenFor(x => x.id)
        @Html.LabelFor(x => x.options)
        @Html.DropDownListFor(x => x.options, Model.optionsDropdown)
        <br />
        @Html.LabelFor(x => x.comment)
        @Html.TextBoxFor(x => x.comment)
        <br />
        <input type="submit" value="Submit"/>
    }
</div>
<p>test after the div</p>

когда событие javascript запускается, оно полностью загружается при просмотре DOM-проводника, но форма не отображается. информация до и после показана, но ничего в форме.

предупреждение из ответа содержит:

<h2>5/12/2016 12:00:00 AM</h2>

<h2>13</h2>

<div id="OptionsDiv">

<form action="/Plan/Confirm" id="PlanOptionsForm" method="post"><input data-val="true" data-val-date="The field date must be a date." data-val-required="The date field is required." id="date" name="date" type="hidden" value="5-12-2016" /><input data-val="true" data-val-number="The field Id must be a number." data-val-required="The Id field is required." id="Id" name="Id" type="hidden" value="13" /><label for="Options">options</label><select data-val="true" data-val-number="The field meal must be a number." data-val-required="The meal field is required." id="meal" name="meal"><option selected="selected" value="0">--Choose an Option--</option>

<option value="1">Option 1</option>

<option value="2">Option 2</option>

<option value="3">Option 3</option>

<option value="4">Option 4</option>

</select>        <br />

<label for="comment">comment</label><input data-val="true" data-val-number="The field servings must be a number." data-val-required="The comment field is required." id="comment" name="comment" type="text" value="0" />        <br />

        <input type="submit" value="Submit"/>

</form></div>

<p>test after the div</p>

Если я войду в DOM-проводник и выберу разные части, они появятся, но начальная загрузка выглядит следующим образом:

screenshot

Все правильно отображается в Chrome и Firefox

Кроме того, удаление другой формы на странице не решает проблему.

4b9b3361

Ответ 1

По-видимому, вы не можете загрузить форму в скрытый элемент.

Я изменил порядок в своей функции JavaScript:

document.getElementById("PopupDiv").innerHTML = xhttp.responseText;
document.getElementById("PopupDiv").removeAttribute("hidden");

To:

document.getElementById("PopupDiv").removeAttribute("hidden");
document.getElementById("PopupDiv").innerHTML = xhttp.responseText;

и теперь он работает.