Jquery 排除某些按钮

Jquery 排除某些按钮,jquery,asp.net,Jquery,Asp.net,我有这样的jquery代码: $('input:not(:button,:submit),textarea,select').change(function () { window.onbeforeunload = function () { if (warnMessage != null) return warnMessage; } }); $('input:submit').click(function (e) { warnMessage = nul

我有这样的jquery代码:

$('input:not(:button,:submit),textarea,select').change(function () {
    window.onbeforeunload = function () {
        if (warnMessage != null) return warnMessage;
    }
});

$('input:submit').click(function (e) {
    warnMessage = null;
});
例如,当用户试图关闭浏览器窗口或在单击链接时导航到新页面时,这用于显示消息。除了此代码排除所有提交类型按钮外,它工作正常

我有3个提交按钮,ID为MainContent_按钮1、MainContent_按钮2、MainContent_按钮3。如何修改上述代码,使其排除这3个按钮。此外,我希望这三个按钮不要将warnMessage设置为null,我希望这三个按钮允许onbeforeunload事件。我试着简单地调用每个按钮并执行以下操作:

$("#MainContent_Button1").click(function (e) {
    warnMessage = "You have unsaved changes on this page!";
    window.onbeforeunload = function () {
        return warnMessage;
    }
});

但是,即使我把它放在上面的代码之前,这也不起作用……那么,我在顶部发布的内容有没有办法将这3个按钮排除在外呢?

这很简单,我认为你的思路是正确的。您可以使用jQuery中的
.not()
函数。请参阅以下代码:

$('input,textarea,select').change(function () {
    window.onbeforeunload = function () {
        if (warnMessage != null) return warnMessage;
    }
});

$('input:submit').not('#MainContent_Button1, #MainContent_Button2, #MainContent_Button3').click(function (e) {
    warnMessage = null;
});

那么我是改变我原来的功能还是只添加这个?@jeffery_the_wind-你发布的内容似乎没有意义。我想为这些按钮触发onbeforeunload。不排除那些按钮吗?你能使用我现有的代码并提供解决方案吗?好的,我可能误解了你的问题。你的页面上的一切都正常吗?您只需要在单击您提到的3个按钮时触发onbeforeload函数?这是正确的吗?假设我有5个按钮,其中3个(MainContent_按钮1到MainContent_按钮3)我希望它们不要将warnMessage设置为null,我希望它们触发onbeforeunload事件。另外两个按钮是MainContent_按钮4和MainContent_按钮5,我希望这两个按钮将warnMessage设置为null。我可以用
$(输入:提交')轻松完成这一部分。不是(这里控制1到3)。更改(…)
我的问题是我在问题中发布的第一个函数。
$('input:submit')。不是(“#主要内容#主要内容#主要内容#主要内容#主要内容#主要内容#主要内容#主要内容#主要内容#主要内容#主要内容#主要内容#主要内容#主要内容#主要内容#主要内容#主要内容#主要内容#主要内容#主要内容#主要内容#主要内容dNA0、#main content_btnSetSelectedNA、#main content_btnSetSelectedNo0、#main content_btnSetSelectedNo、#main content_btnSetSelectedYes0、#main content_btnSetSelectedYes’。单击(函数(e){warnMessage=null;})