Проверьте, какая из двух кнопок нажата - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть страница с двумя кнопками с id = btn-config и id = btn-json-config , которые показывают содержимое двух разных файлов при нажатии и имеютФункция сохранения изменений в этом файле.

Код для обоих файлов дублирован, поэтому я пытаюсь объединить их в один файл .cshtml.

<script>
$("#btn-save-code").click(function (e) {
        var connectionId =  sessionStorage.getItem("connectionId");
        var filename = $("#modal-title").html();
        var contents = codeMirrorEditor.getValue();
        var repository = $("#repositories").val();
        var branch = $("#branches").val();

        var token = $("#__AjaxAntiForgeryForm input").val();
        var dataWithToken = {
            __RequestVerificationToken: token,
            filename: filename,
            connectionId: connectionId,
            fileContents: contents,
            repositoryName: repository,
            branch: branch
        };

        $.ajax({
            type: "POST",
            data: dataWithToken,
            url: '@Url.Action("SaveFileContents", "Home")',
            url: '@Url.Action("SaveStepFileContents", "Home")',
            success: function (data) {
                $("#modal-code-editor").modal('hide');
                $.growl.notice({ message: "File saved successfully" });
            },
            error: function () {
                $.growl.error({ message: "Saving file failed" });
            }
        });
    });
</script>

В настоящее время, когда я нажимаюКнопка «Сохранить»: «Файл успешно сохранен» и «Ошибка при сохранении файла».Я хочу проверить, какая из двух кнопок нажата, чтобы избежать дублирования сообщения.

Я пытался

$("#btn-config,#btn-json-config").click(function () {
        if (this.id == "btn-config") {
            var url = '@Url.Action("SaveFileContents", "Home")';
            return url;
        }
        else if (this.id == "btn-json-config") {
            var url = '@Url.Action("SaveStepFileContents", "Home")';
            return url;
        }
    });

и

    $('#btn-config,#btn-json-config').click(function () {
        var t = $(this).attr('id');
    });
    if ($(t == "btn-config")) {
        url: '@Url.Action("SaveFileContents", "Home")'
    } else if ($(t == "btn-json-config")) {
        url: '@Url.Action("SaveStepFileContents", "Home")'
    };

но я застрял на том, как действовать.

1 Ответ

1 голос
/ 23 сентября 2019

У вас много желающих думать здесь.

Этот $(t == "btn-config") даже не является действительным jQuery, и ни один из них не пытается установить URL дважды

Вам необходимо сделать это:

var t;
$('#btn-config,#btn-json-config').click(function () {
    t = $(this).attr('id');
});

затем позже

url: t == "btn-config" ? '@Url.Action("SaveFileContents", "Home")' : '@Url.Action("SaveStepFileContents", "Home")'

Поскольку вы не разместили свой HTML, вышеприведенное - лучшее, что я могу сделать.Однако, если это радио или что-то подобное, есть лучшие способы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...