2009-07-13 11 views
1

Javascript関数をフォームの送信ボタンに付加するUserControlを作成しました。 Javascript関数は、Page_IsValidを呼び出してページが有効であることを確認してから、コードを実行します。問題のあるページでは、最初の読み込み時にPage_IsValidがtrueに設定されます。 OnClientClickを設定しないと、Page_IsValidは最初の読み込み時に正しくfalseに設定されます。 Page_IsValidがこのように動作している理由を把握することはできません。なぜなら、イベントはまったく実行されないからです。また、一部のページでのみ発生し、他のページでは発生しません。これは、WebForm_DoPostBackWithOptionsがonclickイベントに添付されているページでのみ発生しているようです。なぜクリックイベントを追加するだけの違いがあるのでしょうか?OnClientClickが設定されている場合、Page`_IsValidがtrueに設定されます。

ここに私のコードです:

サーバー側:

(control as Control).OnClientClick = "disableSubmit(); return false;"; 

は、ここで生成されますコードです:OnClickEVentなし


<input type="image" name="ctl00$wpm$CheckoutPage$ctl02$ContinueButton" 
    id="ctl00_wpm_CheckoutPage_ctl02_ContinueButton" 
    src="../images/continue.gif" alt="Continue" 
    onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(
    &quot;ctl00$wpm$CheckoutPage$ctl02$ContinueButton&quot;, &quot;&quot;, true, 
    &quot;OPC&quot;, &quot;&quot;, false, false))" style="border-width:0px;" /> 
<br /><br /> 
</td> 
OnClickEvent付き

:WebForm_DoPostBackWithOptionsはあなたの第二の例で呼び出されることはありませんので、

<tr id="ctl00_wpm_CheckoutPage_ctl02_trContinue"> 
    <td valign="top"> 
     <div id="ctl00_wpm_CheckoutPage_ctl02_AddressValidationSummary" 
      class="validationSummary" style="color:Red;display:none;"></div> 
    <br /> 
    <input type="image" name="ctl00$wpm$CheckoutPage$ctl02$ContinueButton" 
    id="ctl00_wpm_CheckoutPage_ctl02_ContinueButton" src="../images/continue.gif" 
    alt="Continue" onclick="disableSubmit(); 
    return false;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(
    &quot;ctl00$wpm$CheckoutPage$ctl02$ContinueButton&quot;, &quot;&quot;, true, 
    &quot;OPC&quot;, &quot;&quot;, false, false))" style="border-width:0px;" /> 
    <br /><br /> 
    </td> 
</tr> 
+0

私の目:(読みやすくすると助けたいと思っています... – Amadeus45

答えて

0

あなたのOnClientClickで

...return false; WebForm_DoPostBackWithOptions... 

を持っています。

+0

ありがとう、確かに問題になる可能性がありますが、バリデーターが呼び出されましたが、Is_PageValidはtrueを返します。 JS: 関数disableSubmit(){ (typeof演算(Page_ClientValidate)== '機能'){ (Page_IsValid = NULL && Page_IsValid!){ リターンのdoSomething(あれば)であれば、そうでない } { リターンはtrue。 } } else { return DoSomething(); } } Is_PageValidがtrueに設定されているのはなぜですか? –

関連する問題