0

我的 Javascript 没有错误。Javascript 返回 false,并提交表单。此外,当设置UseSubmitBehaviorfalse表单时仍然提交。我缺少什么来阻止提交表单?

// DerivedButton.cs
public class DerivedButton : System.Web.UI.WebControls.Button
{
  public DerivedButton2()
    : base()
  {
    this.OnClientClick = "DerivedButton_OnClick()";
    //this.UseSubmitBehavior = false;
  }

  protected override void OnPreRender(EventArgs e)
  {
    base.OnPreRender(e);
    string resourceName = "MyControls.DerivedButton.js";

    ClientScriptManager scriptManager = this.Page.ClientScript;
    scriptManager.RegisterClientScriptResource(
      typeof(MyControls.DerivedButton), 
      resourceName);
  }
}


//DerivedButton.js
function DerivedButton_OnClick()
{
  var answer = confirm("Are you sure?");
  return answer;
}

//Output Html
<input type="submit" 
       name="DerivedButton1" 
       value="SomeButton" 
       onclick="DerivedButton_OnClick();
         WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions                     
           (&quot;DerivedButton1&quot;, &quot;&quot;, false, &quot;&quot;,
            &quot;Default2.aspx&quot;, false, false))"
       id="DerivedButton1" />
4

1 回答 1

1

尝试将您的更改OnClientClick为以下内容:

this.OnClientClick = "if (!DerivedButton_OnClick()) return false";

这应该可行,尽管我怀疑可能有一种更优雅的方式来做你想做的事。

于 2010-09-10T01:08:31.340 回答