2013-09-26 29 views
1

如何在用戶按下OK按鈕後點擊按鈕點擊事件確定取消彈出窗口 ?? (如返回confrim)我用下面的代碼來調用btnCommitSaving點擊事件,如果用戶按下確定,但我不工作。代碼有問題嗎?使用java腳本點擊按鈕事件

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

請幫助:)

+0

可能重複的[客戶端腳本管理器沒有觸發按鈕單擊事件](http://stackoverflow.com/questions/19018460/client-script-manager-not-firing-button-click-event) – JuStDaN

+0

語法錯誤的jquery ..check我的回答 –

回答

1

這個今天早些時候剛剛做了。最簡單的方法是使用__doPostBack從JavaScript:

// 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,這將做回發,但不會路由到事件處理程序。

編輯

另一個opition是按鈕設置OnClientClick到返回true的javascript函數/假:

function someJSFunction() 
{ 
    return confirm('Are you sure you want to do that?'); 
} 

<asp:Button OnClientClick='return someJSFunction();' OnClick='CodeBehindMethod' /> 

這樣,代碼隱藏方法只會火如果JS功能返回true。

+0

你能告訴我如何在我的代碼中實現它嗎?因爲我的問題是,如果用戶在確定取消按鈕中按​​下確定,他將執行**按鈕單擊**如果取消,則不執行任何操作。 – user2705620

+0

或如果適用,如果確定被按下做一個方法。 – user2705620

+0

我爲你提供了兩種不同的方法,應該可以工作(沒有測試它肯定...)。我通常不會從後面的代碼註冊JS函數,這會變得混亂。 – debracey

0

試試這個:

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

/Vash什麼都沒有發生仍然只是通過它, – user2705620

+0

任何JS錯誤?在控制檯中? –

+0

即時通訊不好意思,但我不知道,因爲即時通訊程序新的你可以告訴我如何尋找錯誤 – user2705620

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(); 
     } 
    } 
} 
+0

仍然沒有任何反應 – user2705620

+0

你有沒有應用我的代碼? – SANDEEP

+0

哦,我很抱歉錯了peopel評論我剛開始嘗試你的代碼。 – user2705620

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); 
+0

仍然沒有任何反應 – user2705620

0

我已經在你的代碼中發現的問題。 首先document.getElementById在你的代碼中是錯誤的。 JavaScript區分大小寫。

第二個問題是您的代碼在頁面上完全呈現之前正在查找按鈕btnCommitSaving。所以var button = document.getElementById('btnCommitSaving')返回null並且button.click()事件未執行。

嘗試通過其他方式調用所有HTML頁面得到呈現。