我正在尝试按照此网站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的情况下页面没有显示类似的行为:按钮单击,我在JavaScript中放置了一个测试函数来测试asp:Button的OnClientClick事件和那个工作正常,但我不知道为什么这个警报没有被调用,我认为Noty JS存在一些问题。 请给予反馈
感谢。
答案 0 :(得分:1)
正如jbabey在评论中所说:
默认情况下单击时,asp:按钮将导致回发。你需要从onclientclick
return false
,现在你返回undefined,因为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>
答案 1 :(得分:0)
你可以将aspSubmitBehavior =“false”属性添加到asp:按钮。
<asp:Button ID="Button2" runat="server" Text="Press" UseSubmitBehavior="false" OnClientClick="return generateAll();" />
我希望这能解决您的问题。请告诉我你是否帮助过。