Код Javascript правильный, но не работает в Microsoft Visual Studio

#javascript #visual-studio #switch-statement

#javascript #visual-studio #switch-инструкция

Вопрос:

простое кодирование на javascript с использованием Microsoft Visual Studio Enterprise 2017 на виртуальной машине.

Пользователь, которому я помогаю, использует Microsoft Visual Studio Enterprise 2017 на виртуальной машине. Простая разработка с использованием javascript и html.

Код правильный — я взял код, создал проект в локализованной версии Visual Studio Community 2019, и он работает. Другой пользователь имеет тот же код внутри отдельной виртуальной машины, идентичной моему пользователю, и он работает.

Рассматриваемый код является оператором switch. Кнопки в таблице при нажатии вызывают оператор switch, но ни один из случаев не выполняется. Мы знаем это, потому что мы поместили оповещение на коммутатор, и оно появилось, но когда мы поместили оповещения в инструкцию case, оно не появилось (не говоря уже о том, что кнопки не работали). Опять же, полная функциональность с использованием того же кода (все внутри index.cshtml) в двух других версиях.

Мы также знаем, что функция обновления работает, поэтому у скрипта нет сомнений в том, что код скрипта считывается.

Итак, мы знаем, что этот код работает в двух отдельных версиях Microsoft Visual Studio, одна внутри виртуальной машины, подобной my user, а другая в автономной локальной версии.

Мы попробовали F12 и получаем некоторое утверждение о carat, которое, по-видимому, является повторяющейся проблемой. Поскольку это корпоративная версия внутри виртуальной машины, я неохотно прошу пользователя сделать что-нибудь радикальное, например devenv / resetuserdata

Так что на самом деле это не проблема с кодированием, но я затрудняюсь устранить неполадки из-за успешной сборки проектов в других установках Visual Studio. Позвольте мне добавить — это не копирование решения из одной среды в другую, создание отдельных проектов и использование одного и того же кода.

 <script>
function RefreshPage() {
        window.location.reload(true);
    }
    function ClearFields(field) {
        switch (field) {
            case 'I':
                $("#txtItemNumber").val("");
                break;
            case 'A':
                $("#txtItemNumber, #txtCategoryNumber").val("");
                break;
            case 'C':
                $("#txtCategoryNumber").val("");
                break;
        }
    }
</script>

 <td>
            <input placeholder="ItemNumber" type="text" id="txtItemNumber"
                   style="font-size:large;text-align: center; height: 44px;" />
        </td>
        <td style="padding-left:20px;">
            <div>
                <button onclick="RefreshPage(); return false;" type="button" class="btn btn-info btn-sm"><span class="glyphicon glyphicon-refresh"></span>Refresh</button>
            </div>
        </td>
        <td style="padding-left: 20px;">
            <div>
                <button onclick="ClearFields('I'); return false;" type="button" class="btn btn-info btn-xs"><span class="glyphicon glyphicon-clear"></span>Clear</button>
            </div>
        </td>
        <td style="padding-left: 20px;">
            <div>
                <button onclick="ClearFields('A'); return false;" type="button" class="btn btn-info btn-xs"><span class="glyphicon glyphicon-clear"></span>ClearAll</button>
            </div>
        </td>
    </tr>
    <tr>
        <td>
            <label style="font-size:large;">
                Enter Category Number:amp;nbsp;
            </label>
        </td>
        <td>
            <input placeholder="Category Number" type="text" id="txtCategoryNumber"
                   style="font-size:large; text-align: center; height: 44px;" />
        </td>
        <td style="padding-left: 22px;">
            <div>
                <button onclick="ClearFields('C'); return false;" type="button" class="btn btn-info btn-xs"><span class="glyphicon glyphicon=clear"></span> Clear</button>
            </div>
        </td>
    </tr>
  

Ответ №1:

После некоторого использования Интернета я сосредоточился на том, что Jquery не работает.

В этом случае я смог решить проблему, добавив новый оператор script, который указывал на

     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  

затем мы нашли код-нарушитель. Несмотря на то, что это был источник jquery-3.2.1.min.js в файле _layoutPage.cshtml была другая ссылка, которая включала эту строку

     <script type="text/javascript" src="@Url.Content("~/Scripts/JQuery/jquery-1.11.3.min.js")"></script>
  

который был переопределяющим. Этот фрагмент кода привел к тому, что jQuery не работал и не работал бы, пока мы не обратили внимание на несколько jQuery.xxx.js файлы, на которые ссылаются по всему проекту.