2009-07-13 5 views
1

Javascript 함수를 양식의 제출 버튼에 첨부하는 UserControl을 작성했습니다. Javascript 함수는 Page_IsValid을 호출하여 페이지가 유효한지 확인한 다음 일부 코드를 실행합니다. 문제가있는 페이지의 경우 첫로드시 Page_IsValid이 true로 설정됩니다. OnClientClick을 설정하지 않으면 Page_IsValid은 첫 번째로드시 올바르게 false로 설정됩니다. Page_IsValid가 이러한 방식으로 작동하는 이유를 파악할 수 없습니다. 이벤트가 전혀 발생하지 않기 때문입니다. 또한 일부 페이지에서만 발생하며 다른 페이지에서는 발생하지 않습니다. 이것은 onclick 이벤트에 연결된 WebForm_DoPostBackWithOptions가있는 페이지에서만 발생하는 것 같습니다. 클릭 이벤트를 추가하는 것만으로 왜 그런 차이가 있습니까? OnClickEVent없이OnClientClick이 설정된 경우 Page__sValid가 true로 설정됩니다.

:

서버 측 : 여기

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

가 생성됩니다 코드의 다음

내 코드의

<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와

:

<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... 

이는 WebForm_DoPostBackWithOptions 귀하의 두 번째 예제에서 호출되지 않습니다.

+0

고마워요. 확실히 문제가 될 수 있습니다. 이제 유효성 검사기가 호출되지만 Is_PageValid는 여전히 true를 반환합니다. JS : 함수 disableSubmit() { 경우 (대해서 typeof (Page_ClientValidate) == '기능') { 경우 (! Page_IsValid = NULL && Page_IsValid) { 창 해봐요(); 다른 } { 참을 리턴; } } else { return DoSomething(); } } Is_PageValid가 true로 설정된 이유는 무엇입니까? –

관련 문제