ユーザー設定フォームを使用していますが、何らかの種類のユーザー設定を変更するドロップダウンリストがあります。同じページにも同じではない。チェックボックスがチェックされると、ユーザは古いものと新しいパスワードを入力する必要がどこチェックボックスで必須のフィールドバリデータを使用する方法チェックされているかどうかを確認します。
<asp:CheckBox ID="cbPassword" runat="server" CssClass="checkbox" onclick="showhidepasswordFields()" />
<div class="col-xs-9 form-inline" id="PChange" style="display: none;">
<asp:TextBox ID="tbxOldPass" runat="server" TextMode="Password" CssClass="form-control" Width="122px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="Enter Old Password" ForeColor="Red" ControlToValidate="tbxOldPass" ValidationGroup="grp"></asp:RequiredFieldValidator>
<asp:TextBox ID="tbxNewPass" runat="server" TextMode="Password" Width="122px" CssClass="form-control"></asp:TextBox>
<asp:RequiredFieldValidator ID="tbxNewPassRFV" runat="server" ControlToValidate="tbxNewPass" ErrorMessage="Enter New Passwod" ForeColor="Red" ValidationGroup="grp"></asp:RequiredFieldValidator>
<asp:TextBox ID="tbxConfirmPass" runat="server" TextMode="Password" Width="122px" CssClass="form-control" ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" Display="Dynamic" ControlToValidate="tbxConfirmPass" ErrorMessage="Reconfirm Password" ForeColor="Red" ValidationGroup="grp" ></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CompareValidator1" runat="server" Display="Dynamic" ErrorMessage="Paswords are not Same" ForeColor="Red" ControlToCompare="tbxNewPass" ControlToValidate="tbxConfirmPass" ValidationGroup="grp"></asp:CompareValidator>
</div>
が見えるなります。チェックボックスをオンにすると、必要なフィールドバリデーターがうまく動作しません。
<asp:Button ID="tbnUpdate" runat="server" Text="Update" OnClick="tbnUpdate_Click" CssClass="btn btn-success" CausesValidation="false" ValidationGroup="grp" />
CausesValidation="false"
を設定すると、検証は行われません。私がそれをtrueに設定すると、チェックボックスがチェックされていなければ、バリデータがトリガされます。チェックボックスがチェックされているときにのみvaldationが実行される方法はありますか?他の方法でドロップダウンリストから設定を更新しますか?
divを表示/非表示にするJavaスクリプト機能。
<script type="text/javascript">
function showhidepasswordFields() {
if (document.getElementById('<%=cbPassword.ClientID%>').checked) {
document.getElementById('PChange').style.display = 'block';
}
else if (!document.getElementById('<%=cbPassword.ClientID%>').checked) {
document.getElementById('PChange').style.display = 'none';
}
}
</script>
関連するすべてのコードを示してください。あなたが共有したコードにはチェックボックスが表示されません。しかし、あなたはこのようなもののためにカスタムバリデーターを書く必要があると思います。 –
私はコードを追加しました。 – Mysterious