javascript错误:尝试在提交时禁用按钮时,函数外部的“return”语句

时间:2010-08-27 09:03:36

标签: javascript asp.net asp.net-ajax

我试图重新使用我从本网站上的一个主题获得的功能。我想在点击时禁用一个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验证控制按钮。

1 个答案:

答案 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);")