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 に答える