Почему этот скрипт DateTimePicker заставляет IE6 и IE7 не загружать страницу

У меня есть несколько страниц на сайте asp.net MVC 3, которые приводят к тому, что IE6 и 7 выдают запрос «Невозможно загрузить страницу». после загрузки меню. Я был в состоянии решить эту проблему до следующегоDateTimePicker сценарий:

<script type="text/javascript">
$('#StartDateTime').datetimepicker({
    onClose: function(dateText, inst) {
        var endDateTextBox = $('#EndDateTime');
        if (endDateTextBox.val() != '') {
            var testStartDate = new Date(dateText);
            var testEndDate = new Date(endDateTextBox.val());
            if (testStartDate > testEndDate)
                endDateTextBox.val(dateText);
        }
        else {
            endDateTextBox.val(dateText);
        }
    },
    onSelect: function (selectedDateTime){
        var start = $(this).datetimepicker('getDate');
        $('#EndDateTime').datetimepicker('option', 'minDate', new Date(start.getTime()));
    }
});
$('#EndDateTime').datetimepicker({
    onClose: function(dateText, inst) {
        var startDateTextBox = $('#StartDateTime');
        if (startDateTextBox.val() != '') {
            var testStartDate = new Date(startDateTextBox.val());
            var testEndDate = new Date(dateText);
            if (testStartDate > testEndDate)
                startDateTextBox.val(dateText);
        }
        else {
            startDateTextBox.val(dateText);
        }
    },
    onSelect: function (selectedDateTime){
        var end = $(this).datetimepicker('getDate');
        $('#StartDateTime').datetimepicker('option', 'maxDate', new Date(end.getTime()) );
    }
});
</script>

Я считаю, что это ошибка, которую он выдает:

HTML Parsing Error: Unable to modify the parent container element before the child element is closed

Теперь я решил эту проблему, однако я хочу знать,why it is happening in the first place? Это ошибка в некоторых версиях IE? Я заметил, что при одной установке IE7, если вы устанавливаете стандартные обновления, ошибка исчезает, и некоторые люди говорят, что у них была ошибка в IE8.

В основном эта проблема заключается в том, что у меня есть страница макета MVC, которая выглядит следующим образом:

<!DOCTYPE html>
<html>
<head>
    ...
</head>
<body>
<section>
    @RenderBody()
</section>
<footer>
</footer>
</body>
</html>

И на страницах, где есть проблема, есть что-то вроде этого:

<h2>Test</h2>
<form action="/Home/Test" data-ajax="true" data-ajax-loading="#loading-progress"
 data-ajax-method="GET" data-ajax-mode="replace" data-ajax-update="#results"
 id="form0" method="post">

    Start Time
    <br />
    <input data-val="true" data-val-required="The StartDateTime field is required."
     id="StartDateTime" name="StartDateTime" type="text" value="" />
    <br />

    End Time
    <br />
    <input data-val="true" data-val-required="The EndDateTime field is required."
     id="EndDateTime" name="EndDateTime" type="text" value="" />    <br />
    <br />

    <input type="submit" value="Search" />
    <img id="loading-progress" src="../../Content/images/ajax-loader.gif" alt="loading"/>
</form>

<div id="results"></div>

Далее следует вышеприведенный скрипт. Таким образом, страница со сценарием отображается внутри<section> тег.

Для решения этой проблемы все, что нужно сделать, это отделитьform отscript так что все, что я сделал, это визуализировал форму в@RenderBody() как показано ниже, и сценарий в@RenderSection("Scripts").

<!DOCTYPE html>
<html>
<head>
    ...
</head>
<body>
<section>
    @RenderBody()
</section>
<footer>
</footer>
@RenderSection("scripts", false)
</body>
</html>

Так что это исправило вопрос, но почему? Сделал<section> тег должен быть закрыт перед скриптом? Что еще интереснее, это проблема только на страницах сDateTimePicker скрипт. У меня есть много страниц с похожим и более сложным сценарием, который не имеет проблем.

Ответы на вопрос(1)

Ваш ответ на вопрос