如何避免多次显示警报

时间:2015-07-28 18:35:20

标签: javascript jquery asp.net

网页上有一个UpdatePanel,每个行都有一个网格视图,每个行都有一个复选框,还有一个同一类“cssUpdateEM”的按钮。在更新面板之外,我有另一个按钮“btnExportToExcel”,其中包含“cssUpdateEM”类。

更新面板中的按钮(如果单击)仅显示警报消息(如果未选择任何项目)。问题在于外部按钮“btnExportToExcel”。如果页面被回发n次,并且单击了btnExportToExcel,并且未选择任何项目,则警报消息将显示n次而不是仅显示一次。

//**************************
// Pick the selected Items
//**************************
                $('.cssUpdateEM').click(function () {
                    var SelectedEMItemIDs = "";
                    var strDelim = "";
                    $('.cssItemEM').each(function () {
                        if ($(this).is(':checked') == true) {
                            SelectedEMItemIDs += strDelim + $(this).attr('eid');
                            strDelim = ";";
                        }
                    });
                    if (SelectedEMItemIDs == "") {
                        alert('Please select the item(s).');
                        return false;
                    }
                    else {
                        $('#hdnSelectedItemID').attr('Value', SelectedEMItemIDs);
                        return true;
                    }
                });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

知道为什么会发生这种情况,以及如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。我想提一下我正在使用母版页。

所以,之前的代码:

<script type="text/javascript">

    function BindControlEvents() {
    //jQuery is wrapped in BindControlEvents function so it can be re-bound after each callback.

        $(document).ready(function () {

            $('.cssUpdateEM').click(function () {
                //the original function body here
            });

           // ... other functions here

        })
    }

// ... other functions here

脚本以:

结束
    Sys.Application.add_load(BindControlEvents);
</script>

之后的代码将btnExportToExcel事件处理程序移到$(document).ready之外。

$('#btnExportToExcel').click(function () {
    //code including the alert here
}

我希望这个解释会在某个时候帮助某人。