用户在确定取消弹出窗口中按下确定按钮后,如何触发按钮点击事件? (如返回confrim)我使用以下代码调用btnCommitSaving点击事件,如果用户按下OK但我不工作。代码有什么问题吗?
ClientScriptManager csm = Page.ClientScript;
csm.RegisterClientScriptBlock(this.GetType(), "__Mensagem", "if (confirm('" + "Proceed" + "')){ var button = document.getElementByID(btnCommitSaving);button.click();}", true);
请帮助:)
答案 0 :(得分:1)
今天早些时候这样做了。最简单的方法是使用javascript中的__doPostBack
:
// Assume myButton is an <asp:Button> (or anything) previously defined
// that has an OnClick event registered in the code behind
var uniqueID = '<%= myButton.UniqueID %>';
var additionalData = '';
__doPostBack(uniqueID, arguments);
如果您对这些论点感兴趣,可以在Request["__EVENTARGUMENT"]
中找回论据。棘手的是将UniqueID
代替ClientID
与__doPostBack
一起使用。许多网站都告诉你使用ClientID
,这将进行回发,但不会路由到事件处理程序。
修改强>
另一个选择是将按钮上的OnClientClick
设置为返回true / false的javascript函数:
function someJSFunction()
{
return confirm('Are you sure you want to do that?');
}
<asp:Button OnClientClick='return someJSFunction();' OnClick='CodeBehindMethod' />
这样,只有在JS函数返回true时才会触发codebehind方法。
答案 1 :(得分:1)
对你有帮助
<div class="loginBox">
<script type="text/javascript">
function Confirm() {
var confirm_value = document.createElement("INPUT");
confirm_value.type = "hidden";
confirm_value.name = "confirm_value";
if (confirm("Are you sure Want to submit all Budgeted Requirement ?")) {
confirm_value.value = "Yes";
} else {
confirm_value.value = "No";
}
document.forms[0].appendChild(confirm_value);
}
</script>
<asp:Button ID="BtnSubmit" Text="Submit" runat="server" OnClientClick = "Confirm();" OnClick="BtnSubmit_Click" />
</div>
protected void BtnSubmit_Click(object sender, EventArgs e)
{
string confirmValue = Request.Form["confirm_value"];
if (grdBudgetMgr.Rows.Count > 0)
{
if (confirmValue == "Yes")
{
ClsBudgetManager objBudgetManager = new ClsBudgetManager();
objBudgetManager.UpdateBudgetSentAllStatus(Convert.ToInt32(hdnClientId.Value), Convert.ToInt32(ddlBudgetlist.SelectedValue), true);
GetData();
}
}
}
答案 2 :(得分:1)
试试这个:
<asp:Button OnClientClick="return confirm('Are you sure you want to do that?');" OnClick="btnCommitSaving_Click" />
或
ClientScriptManager csm = Page.ClientScript;
csm.RegisterClientScriptBlock(this.GetType(), "__Mensagem", "if (confirm('Proceed?')){$('#" + btnCommitSaving.ClientID + "').click();}", true);
答案 3 :(得分:0)
试试这个:
csm.RegisterStartupScript(this.GetType(), "__Mensagem", "if (confirm('Proceed')){ var button = document.getElementByID('btnCommitSaving');button.click();}", true);
答案 4 :(得分:0)
我在你的代码中发现了问题。 首先, document.getElementById 在您的代码中是错误的。 JavaScript 区分大小写。
第二个问题是您的代码在页面上完全呈现之前找到了按钮 btnCommitSaving 。所以 var button = document.getElementById('btnCommitSaving')返回null并且 button.click()事件没有执行。
在呈现所有 HTML页面时,尝试通过其他方式调用。