ASP : RadioButtonList는 클라이언트 유효성 검사가 실패하더라도 여전히 서버로 다시 게시합니까?

StackOverflow https://stackoverflow.com/questions/261547

문제

이 쿼리는 관련이 있습니다 이것 내가 어제 물었다. ASP.NET 페이지에 다음과 같이 정의 된 라디오 버튼 목록이 있습니다.

<asp:RadioButtonList ID="rdlSortBy" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" AutoPostBack="True" >
       <asp:ListItem Selected="True">Name</asp:ListItem>
        <asp:ListItem>Staff No</asp:ListItem>
</asp:RadioButtonList>

클라이언트 측에서 다음과 같은 유효성 검사를 수행하고 있습니다.

rdlSortBy.Attributes("onclick") = "javascript:return prepareSave() && prepareSearch();"

문제는 JavaScript 유효성 검사가 예상대로 실행된다는 것입니다. 메시지가 표시되고 사용자가 변경 사항을 저장할 때까지 페이지에 남아있을 것으로 예상됩니다. 대신 페이지가 다시 게시되고 효과적으로 구축되지 않은 변경 사항을 잃어 버릴 것입니다.

무엇이 잘못 될 수 있습니까?

도움이 되었습니까?

해결책

나는 이것을 고쳤다. 문제는 개별 라디오 버튼에 Radiobuttonlist의 "onclick"을 첨부하고 있다는 것이었다.

이것은 수정입니다 :

rdlSortBy.Items(0).Attributes("onclick") = "javascript:return isDirtied() && prepareSearch();"
    rdlSortBy.Items(1).Attributes("onclick") = "javascript:return isDirtied() && prepareSearch();"

다른 팁

그만큼 OnClick "검증"에 사용중인 코드가 실행 중이며 제어 자체가 실행중인 양식을 게시하는 코드가 있습니다.

포스트 백 프로세스를 가로 채고 클라이언트 측 양식을 게시하기 전에 중지해야합니다. 이것을하는 가장 좋은 방법은 CustomValidator 특히 "ClientValidationFunction"속성. 이렇게하면 JavaScript가 유효성 검사 오류로 인해 게시물이 발생하지 않아야한다는 신호를 보낼 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top