Ich habe das folgende Javascript bekommt, die ein Formular in eine versteckte div auf der Seite lädt und die Shows des divFormular zeigt nicht in IE
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();
}
dies eine Teilansicht lädt mit dem folgenden:
<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>
Wenn das JavaScript-Ereignis ausgelöst wird, wird es beim Anzeigen des DOM-Explorers korrekt geladen, aber das Formular wird nicht angezeigt. Info davor und danach wird angezeigt, aber nichts in der Form.
der Alarm aus der Antwort enthält:
<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>
Wenn ich in den DOM-Explorer gehen und die verschiedenen Teile wählen, werden sie zeigen, aber die Anfangslast wie folgt aussieht:
Es zeigt alles korrekt in Chrome und Firefox
Auch das Entfernen der anderen Form auf der Seite löst das Problem nicht .
Enthält Ihre Seite eine 'Form' um' popupDiv'? –
Es gibt ein anderes Formular auf der Seite, aber es enthält nicht mein popupDiv – Alex
Wenn 'popupDiv' nicht im Formular ist, dann funktioniert es in Edge wie erwartet. Wenn 'popupDiv' innerhalb der Form ist, dann entfernt Edge (und FF) die interne' Form' und behält die externe. Der Inhalt des internen Formulars wird angezeigt. Senden geht an externe Formularaktion. Das habe ich vom Experiment herausgefunden. Verschachtelte Formulare sind nicht erlaubt. EI 11 macht dasselbe. Überprüfen Sie den Inhalt Ihrer xhr-Antwort. –