0

我正在尝试按照本网站http://needim.github.com/noty/中的说明创建警报,这 是代码

    <head runat="server">
    <title>Test</title>
    <script src="jquery-1.7.2.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="js/noty/jquery.noty.js"></script>
    <script type="text/javascript" src="js/noty/layouts/top.js"></script>
    <link rel="stylesheet" type="text/css" href="buttons.css" />
    <script type="text/javascript" src="js/noty/themes/default.js"></script>
</head>
<body>
    <div class="container">
        <div id="customContainer">
        </div>
    </div>
    <script type="text/javascript">
        function generate(type, layout) {
            var n = noty({
                theme: 'defaultTheme',
                text: 'Do you want to continue?',
                buttons: [
    {
        addClass: 'btn btn-primary',
        text: 'Ok',
        onClick: function ($noty) {
            // this = button element
            // $noty = $noty element
            $noty.close();
            noty(
            {
                text: 'Record deleted !',
                type: 'success',
                callback:
                {
                    onShow: function () { },
                    afterShow: function () { TakeValue(true); },
                    onClose: function () {  },
                    afterClose: function () { }
                }
            });
        }
    },
     {
         addClass: 'btn btn-danger',
         text: 'Cancel',
         onClick: function ($noty) {
             $noty.close();
             noty(
            {
                text: 'Record not deleted !',
                type: 'warning',
                callback:
                 {
                     onShow: function () { },
                     afterShow: function () { TakeValue(false); },
                     onClose: function () { },
                     afterClose: function () { }
                 }
            });
         }
     }
    ]

            });

        }
     function TakeValue(result) {
            if (result == true) {
                document.getElementById("Hidden1").value = "true";
                alert(document.getElementById("Hidden1").value);

            } else {

                document.getElementById("Hidden1").value = "false";
                alert(document.getElementById("Hidden1").value);
            }
        }
        function generateAll() {
            generate('information', 'top');
        }

    </script>
    <form id="form" runat="server">
    <input id="Hidden1" type="hidden" value="false"/>
    <asp:Button ID="Button2" runat="server" Text="Press"  OnClientClick="return generateAll();" />
    <input id="Button1" type="button" value="button" onclick="return generateAll();" />
    </form>
</body>

我放置了两个按钮,一个是 HTML 按钮,另一个是 asp:Button,当我使用 HTML 按钮时,整个场景工作正常,但是在 asp:Button click 的情况下页面没有显示类似的行为,我已经在 J​​avaScript 中放置了一个测试函数来测试 asp:Button 的 OnClientClick 事件,并且工作正常,但我不知道为什么没有调用此警报,我认为 Noty JS 存在一些问题。请回馈

谢谢。

4

2 回答 2

1

正如 jbabey 在评论中所说:

默认情况下,单击 asp:button 将导致回发。你需要return false从onclientclick,现在你返回未定义,因为generateAll没有返回。

由于您使用的是 jQuery,我会更进一步,而不是直接设置click属性。相反,使用 jQuery 设置它:

<script>
$(document).ready(function() {
    $('#Button1').click(generateAll);
});
...
function generateAll(e) {
    generate('information', 'top');
    // This will prevent the default action of submitting the form.
    e.preventDefault();
}
</script>
于 2012-11-05T15:16:31.910 回答
0

您能否将 UseSubmitBehavior="false" 属性添加到 asp:button。

<asp:Button ID="Button2" runat="server" Text="Press" UseSubmitBehavior="false" OnClientClick="return generateAll();" />

我希望这能解决您的问题。请让我知道它是否对您有帮助。

于 2012-11-06T08:10:51.240 回答