не срабатывает $(“#submit-button”).on('click',function () {}

136
19 августа 2019, 14:10

Есть View:

@model DTOLibrary.PositionDto 
 
@{ 
    ViewBag.Title = "Edit"; 
} 
 
<h2>Edit</h2> 
 
<div class="container" style="width:40%"; margin-top:2%> 
 
    <form id="form"> 
 
        @Html.TextBoxFor(Model => Model.Name, new { @class = "form-control", @placeholder = "Name" }) 
 
        @Html.TextBoxFor(Model => Model.Salary, new { @class = "form-control", @placeholder = "Salary" }) 
 
        <input type="submit"  value="Submit" class="btn-block btn-primary" id="submit-button"/> 
 
    </form> 
 
</div> 
 
 
<script src="~/Scripts/jquery-1.10.2.min.js"></script> 
<script> 
    $(document).ready(function () { 
        debugger; 
        console.log('your message'); 
        $("#submit-button").on('click',function () { 
            $("#loaderDiv").show(); 
          
            var Data = $("#form").serialize(); 
            console.log(Data); 
            $.ajax({ 
                 
            type: "POST", 
             url: "/Position/Edit", 
            data: Data, 
                succsess: function (response) { 
                    $("#loaderDiv").hide(); 
                alert("you are done "); 
            } 
            }) 
        }) 
    }) 
 
</script>

в стрипте должен выполняться Post запрос к контроллеру, но при дебаге выяснил что после обращении к функции

$("#submit-button").on('click',function () {

оно идет в конец пропуская её выполнение, где я допустил ошибку?

Answer 1

При нажатии на кнопку "#submit-button" срабатывании события submit и происходит перерисовка страницы и соответственно js не успевает выполнится.

Нужно отметить submit для этого требуется использовать "e.preventDefault();"

    $("#submit-button").on('click',function (e) {
        e.preventDefault();
       // you code
    }

Так же отмечу, что событие submit лучше отслеживать через его вызов, а не через нажатие на кнопки

    $("#form").on('submit',function (e) {
        e.preventDefault();
       // you code
    }
Answer 2
    $("#submit-button").on('click',function (e) {
        e.preventDefault();
        $("#loaderDiv").show();
        ...

или

  <input type="button" ...

идет в конец пропуская её выполнение

Эта строчка не выполняет анонимную функцию, а прикрепляет ее к кнопке в качества обработчика события click.

READ ALSO
Как правильно обновлять access (JWT) токен в SPA?

Как правильно обновлять access (JWT) токен в SPA?

Есть SPAДля того, чтобы юзеру не пришлось каждый раз перелогиниваться, сначала смотрю, не просрочен ли у него токен:

138
phantomjs скачка файла по кнопке

phantomjs скачка файла по кнопке

В консоли браузера, все норм, файл загружается

119
Слайдер пунктов списка на чистом JS

Слайдер пунктов списка на чистом JS

Прошу помочь написать скрипт прокрутки списка пунктов на чистом JSСуть проблемы такова: Есть сайдбар с двумя дивами, где каждый имеет свой...

141
Как оптимизировать запрос к API

Как оптимизировать запрос к API

Есть API где я могу получить за один запрос данные только за текущий деньПроблема в том что если мне надо будет достать данные за 30 дней, то мне...

159