我试图重新使用我从本网站上的一个主题获得的功能。我想在点击时禁用一个asp.net按钮,这样用户就不会多次点击它。
该按钮位于Ajax Updatepanel内,并且还有一个ConfirmButtonExtender,但是当我点击它时,它会在Internet Explorer中出现此javascript错误。
**
错误:'return'语句之外 功能
**
当我删除ConfirmButtonExtender时,一切正常。
以下是功能
Private Function DisableTheButton(pge As Control, btn As Control) As String
Dim sb As New System.Text.StringBuilder()
sb.Append("if (typeof(Page_ClientValidate) == 'function') {")
sb.Append("if (Page_ClientValidate() == false) { return false; }} ")
sb.Append("if (confirm('Are you sure to proceed?') == false) { return false; } ")
sb.Append("this.value = 'Please wait...';")
sb.Append("this.disabled = true;")
sb.Append(Page.ClientScript.GetPostBackEventReference(btn, ""))
sb.Append(";")
Return sb.ToString()
End Function
以下是我的页面加载
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.btnSubmit.Attributes.Add("onclick", DisableTheButton(Me.Page, Me.btnSubmit))
End Sub
我也使用asp.net验证控制按钮。
答案 0 :(得分:1)
将您的JS-Code包装成匿名函数并将其传递给按钮
sb.Append("(function(btn) {")
sb.Append("if (typeof(Page_ClientValidate) === "function" && confirm("Are you sure to proceed?")) {")
sb.Append("btn.value = 'Please wait...';")
sb.Append("btn.disabled = true;")
sb.Append("Page.ClientScript.GetPostBackEventReference(btn, ""))")
sb.Append("}})(this);")