Почему эта кнопка не отправляет мою форму? ASP. NET MVC - PullRequest
1 голос
/ 14 апреля 2020

У меня есть модал, который запрашивается после нажатия кнопки «submitBtn» (содержится в форме), одна кнопка в моем модале (btnSubmit) должна отправить форму, используя код javascript. Однако, это не в состоянии сделать это и выдает ошибку;

"Uncaught TypeError: Невозможно прочитать свойство 'submit' из null в HTMLButtonElement. (Категория: 72) strong text "

Я не уверен, почему он это делает ? Оповещение запускается по назначению.

Ниже моя форма, а ниже - мой тег сценария, содержащий необходимый код javascript. Любая помощь будет принята с благодарностью, спасибо:)

Форма HTML: (СВЯЗАНА С 'CategoryController')

@using (Html.BeginForm("Category", "Category", FormMethod.Post))
{

    <form id="formField">

        <label id="CategoryDescriptionLabel">Description</label>

        <input id="CategoryDescription" type="text" name="categoryDescription" /> 

        <input type="button" value="submit" id="submitBtn" data-toggle="modal" data-target="#confirm-submit" /> 

    </form>

}

Javascript:

<script>

    document.getElementById("btnSubmit").addEventListener("click", function () {
        alert("Submitting!");
        document.getElementById("formField").submit()
    });

</script>

Примечание: оба фрагмента кода находятся в файле cs html.

1 Ответ

1 голос
/ 14 апреля 2020

Вы фактически определили 2 вложенных форм : сначала с использованием Html.BeginForm() (это уже охватывает все, что внутри него, между <form> и </form>), а затем другой один вручную с использованием тегов <form> и </form>.

Наличие вложенных форм недопустимо в HTML. Лучше пропустить созданный вручную <form>, изменив его на следующее:

@using (Html.BeginForm("Category", "Category", FormMethod.Post))
{
    <label id="CategoryDescriptionLabel">Description</label>

    <input id="CategoryDescription" type="text" name="categoryDescription" /> 

    <input type="button" value="submit" id="submitBtn" data-toggle="modal" data-target="#confirm-submit" /> 
}

Чтобы определить id для сгенерированного <form>, вы можете использовать это :

@using (Html.BeginForm("Category", "Category", FormMethod.Post, new { id = "bla" }))
{
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...