使用javascript触发按钮单击事件

时间:2013-09-26 03:30:55

标签: c# javascript jquery asp.net

用户在确定取消弹出窗口中按下确定按钮后,如何触发按钮点击事件? (如返回confrim)我使用以下代码调用btnCommitSaving点击事件,如果用户按下OK但我不工作。代码有什么问题吗?

 ClientScriptManager csm = Page.ClientScript;
 csm.RegisterClientScriptBlock(this.GetType(), "__Mensagem", "if (confirm('" + "Proceed" + "')){  var button = document.getElementByID(btnCommitSaving);button.click();}", true);

请帮助:)

5 个答案:

答案 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页面时,尝试通过其他方式调用。