首页 > 解决方案 > 检查两个按钮中的哪一个被点击

问题描述

我有一个页面,其中有两个按钮,其中id=btn-configid=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")'
    };

但我坚持如何进行。

标签: jqueryasp.net-ajax

解决方案


你在这里有很多一厢情愿的想法。

$(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,以上是我能做的最好的。但是,如果它们是收音机之类的,还有更好的方法


推荐阅读