在按钮点击事件中,我调用了一个JS函数,但是在所有单击事件行都关闭后调用它。为什么以及如何解决这个问题?
我想要JS功能 - " ConfirmAcceptance"在执行服务器端功能之前,应首先调用并显示确认框警报 - " DoSomething"。
编辑:请注意,我有一些必须在服务器端点击事件上执行的验证(比如获取数据库值),并且基于此结果,我只能调用所需的JS确认框
服务器
protected void ApplyButton_Click(object sender, EventArgs e)
{
//Database values are fetched and these values are validated.
if (validations are true)
{
Flag.Value = "true";
break;
}
if (Flag.Value == "false")
ApplyRestrictionFlag();
else
{
ClientScript.RegisterStartupScript(GetType(), "Javascript", "javascript: ConfirmAcceptance(); ", true);
if(Accept.Value == "true")
DoSomething();
}
}
客户端:
function ConfirmAcceptance()
{
var accepted = confirm("Click OK to accept terms");
if(accepted == true)
Accept.Value = 'true';
}
<asp:Button ID="ApplyButton" runat="server" OnClick="ApplyButton_Click" Text="Apply"/>
<asp:HiddenField ID="Flag" runat="server" Value="false" />
<asp:HiddenField ID="Accept" runat="server" Value="false" />
答案 0 :(得分:1)
处理OnClientClick事件
function ConfirmAcceptance() {
return confirm("Click OK to accept terms");
}
<asp:Button OnClientClick="return ConfirmAcceptance();" OnClick="ApplyButton_Click" />
这将确保首先运行客户端验证然后服务器验证。