asp.net - 如何将相似的 JavaScript 方法组合成一个

标签 asp.net javascript

我有一个 ASP.NET 代码隐藏页面,将多个复选框链接到 JavaScript 方法。我只想创建一个 JavaScript 方法来处理所有这些,因为它们是相同的逻辑,我该怎么做?

页面加载后的代码:

checkBoxShowPrices.Attributes.Add("onclick", "return checkBoxShowPrices_click(event);");

checkBoxShowInventory.Attributes.Add("onclick", "return checkBoxShowInventory_click(event);");

ASPX 页面 JavaScript;显然,他们都对分配的复选框执行相同的操作,但我认为这可以简化为一种方法:

function checkBoxShowPrices_click(e) {
    if (_hasChanged) {
        confirm(
            'All changes will be lost. Do you wish to continue?',    
            function(arg) {
                if (arg.toUpperCase() == 'YES') {
                    var checkBox = document.getElementById('<%=checkBoxShowPrices.UniqueID%
>');
                    checkBox.checked = !checkBox.checked;
                    eval("<%=base.GetPostBackEventReference(checkBoxShowPrices)%>");
                    _hasChanged = false;
                }
            });
            return false;
        } else {
            eval("<%=base.GetPostBackEventReference(checkBoxShowPrices)%>");
    }
}
    
function checkBoxShowInventory_click(e) {
    if (_hasChanged) {
        confirm(
            'All changes will be lost. Do you wish to continue?', 
            function(arg) {
                if (arg.toUpperCase() == 'YES') {
                    var checkBox = document.getElementById('<%
=checkBoxShowInventory.UniqueID%>');
                    checkBox.checked = !checkBox.checked;
                    eval("<%=base.GetPostBackEventReference(checkBoxShowInventory)%>");
                    _hasChanged = false;
                }
            });
            return false;
        } else {
            eval("<%=base.GetPostBackEventReference(checkBoxShowInventory)%>");
        }
    }

最佳答案

将引发事件的复选框添加到事件中:

checkBoxShoPrices.Attributes.Add("onclick", "return checkBox_click(this, event);");

然后在函数中声明它,如下所示:

function checkBoxShowPrices_click(checkbox, e){ ...}

并且您在复选框中有您需要的实例

关于asp.net - 如何将相似的 JavaScript 方法组合成一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/808310/

相关文章:

ASP.NET MVC - 母版页的代码隐藏

c# - 如何首先使用实体​​框架代码在数据库中插入空日期时间

javascript - HTML:为什么 Div 不在顶部 Angular 落?

javascript - Angular-google-maps:如何设置当前用户在加载 map 上的位置?

javascript - 从缓冲区中检索 FLOAT、DOUBLE、INT 或 BOOL 值

javascript - 如何动态组合两个正则表达式?

c# - 如何使用winform将Signalr客户端连接到不同计算机上的Signalr服务器

c# - 未找到 WCF 服务端点

asp.net - 发布 f# 项目时出现 dotnet 编译器错误

javascript - 在变量 jquery 中运行 .hover()