视图上所有按钮/链接点击或DropDown更改的jQuery事件

时间:2011-08-17 18:47:57

标签: jquery asp.net-mvc-3 partial-views preview

我在asp.net mvc3中工作,并且对我的标签和登录数据有部分视图。在一个视图(我的预览视图)中,我生成一些图像,并将它们上传到云,然后为用户显示它们。然后,用户可以选择CancelSubmit

我希望除了Submit之外还有任何按钮,ActionLink或下拉菜单执行取消功能(包括从云中删除图像以及其他一些内容),但我不知道如何获取除Submit点击之外的每个事件的jQuery事件处理程序。目前,我有一个jQuery“取消”功能,它绑定到Cancel按钮上的点击事件,现在需要扩展其用法。

我认为这是自我解释的,但如果您需要查看代码,请询问。

所有可能的事件: 在我的部分视图中,我有这些剃刀html助手:2 x @Html.ActionLinks和1 x @Html.DropDownList

我的取消和提交按钮的格式为:<input type="submit" value="Cancel" />

[更新] :我的点击事件现在正在运行,但是我想在点击时使用e.preventDefault();,因此在我的取消/删除完成之前它不会更改视图,但是,在取消功能完成后,如何同步提交项目?我假设我使用了回调,但是我使用e.submit()e.click()还是其他?我希望它适用于<a>代码和dropDown更改

3 个答案:

答案 0 :(得分:2)

这个怎么样?

$("input,a,select").not("input:submit").click(function(e) {
    // do work
});

工作示例:http://jsfiddle.net/eqwkD/


<强>更新

$("input,a,select").not("#SubmitButton").click(function(e) {
    // do work
});

答案 1 :(得分:1)

如果下一个代码不是submit:

,则会在单击时调用cancelFunction
$(":input").click(function ({
    if (!$('#myinput').is(':submit')) {
         cancelFunction();
    }
});

这将使所有非提交类型的按钮调用取消按钮。如果您想更具体地在按钮上添加id并使用以下代码:

$(":input").click(function() {
    if (!($('#myinput').attr("id") == "idOfSubmitButton")) {
         cancelFunction();
    }
})

答案 2 :(得分:0)

您可以尝试在jQuery点击处理程序中使用:not selector:

$("input,a,select").not("#submit").click(cancelFunction);

这将为id为'submit'的元素选择之外的所有输入元素,并将它们绑定到取消函数。