在主頁面上,有一個按鈕彈出一個對話框,提示用戶輸入用戶名和密碼。當他們點擊「保存」時,證書會被驗證(兩個JS & SQL),並且窗口關閉或者告訴他們他們的證書無效。第一次點擊後,用戶可以多次點擊一個按鈕,當它關閉表格時
雖然我正在經歷一些奇怪的行爲,我可以無限地混合按鈕,然後執行「保存」操作多次。
在Page_Load
,我們重視一個Javascript '事件' 的按鈕,像這樣:
btnSave.Attributes.Add("onClick", "return ValidateUserPasswordSignPopup('" & txtUsername.ClientID & "', '" & txtPassword.ClientID & "');")
JavaScript驗證:
function ValidateUserPasswordSignPopup(userTxtBox, PassTxtBox)
{
var userTextBoxctrl = document.getElementById(userTxtBox)
var PassTxtBoxctrl = document.getElementById(PassTxtBox)
if (userTextBoxctrl.value.trim() == '') {
alert("Please enter User Name.")
document.getElementById(userTxtBox).focus();
return false;
}
if (PassTxtBoxctrl.value.trim() == '')
{
alert("Please enter Password.")
document.getElementById(PassTxtBox).focus();
return false;
}
return true;
}
按鈕點擊:
Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSave.Click
If SaveData() Then
Response.Write("<script language = JavaScript>window.returnValue='yes';self.close();</script>")
End If
End Sub
SaveData()
只是創建幾個對象,運行一個存儲過程,創建了幾個對象,然後創建它傳遞給另一個方法,並保存到一個數據庫中的DataTable
。沒什麼太激烈的。
我已經嘗試在JS方法中添加代碼來禁用按鈕,然後在代碼端單擊事件結束時重新啓用它,但窗口似乎無限地以這種方式掛起。
我也嘗試過在JS之間切換狀態(在每個return
/之前重新啓用它),然後在點擊事件開始時重新禁用它,並在最後重新啓用它的點擊事件,但我仍然可以用此路線多次點擊按鈕。
任何人都有任何想法可能會導致此?
編輯我最初的想法是運行Javascript所花費的時間,因爲腳本的簡介就是允許用戶在回發發生之前重新單擊按鈕,以處理單擊事件。我完全刪除了在Page_Load
中添加的腳本,在上面的第一個代碼塊中,但行爲仍然發生。
正如我的最後一段所述,在編輯之前,我嘗試在JavaScript中和代碼中切換啓用狀態。我也嘗試完全刪除Javascript。這兩個問題都沒有解決。這就是說,你的第二個想法是用'submittedFlag' *做了*工作。 – sab669