すべてのテキストボックスとドロップダウンリストで必須のフィールド検証コントロールを使用しています。ボタンのページを押すとポストバックされませんが、テキストボックスやドロップダウンリストが空の場合、ボタンをクリックするとエラーメッセージが表示されます。必要なフィールド検証コントロール付きのボタンクリックイベントでページがポストバックされない
ボタンコントロールでCausesValidation="false"
プロパティを使用すると、すべての検証コントロールが無効になり、ページはボタンクリック時にポストバックされます。
私は、そのページがボタンクリックでポストバックし、必要なフィールド検証コントロールもボタンクリックで動作するようにします。
<div class="row" id="question">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<div class="form-group">
<asp:TextBox ID="questions" runat="server" class="form-control input-sm floatlabel" placeholder="Question" TextMode="MultiLine"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" CssClass="textalignment" ErrorMessage="Question is required" ControlToValidate="questions" ForeColor="Red"></asp:RequiredFieldValidator>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<img id="imgprvw" class="img-responsive" />
</div>
</div>
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<input type="file" name="filUpload" id="filUpload" onchange="showimagepreview(this)" />
</div>
</div>
</div>
</div>
<!-- End Question and Question type Selection -->
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="form-group">
<div class="form-group">
<asp:DropDownList ID="ddlanswers" runat="server" class="form-control input-sm floatlabel" OnChange="showDiv(this)">
<asp:ListItem Text="Answer Type" Value="0"></asp:ListItem>
<asp:ListItem Text="Multiple Choices" Value="1"></asp:ListItem>
<asp:ListItem Text="Fill In The Blacks" Value="2"></asp:ListItem>
<asp:ListItem Text="Multi Select Choices" Value="3"></asp:ListItem>
<asp:ListItem Text="Descriptive Answer" Value="4"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" InitialValue="0" CssClass="textalignment" runat="server" ErrorMessage="Answer Type is required" ControlToValidate="ddlanswers" ForeColor="Red">
</asp:RequiredFieldValidator>
</div>
</div>
</div>
</div>
<div class="row" id="row1">
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<div class="form-group">
<asp:TextBox ID="multichoice1" runat="server" class="form-control input-sm floatlabel" placeholder="Multiple Choice 1"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" CssClass="textalignment" ErrorMessage="Multiple choice is required" ControlToValidate="multichoice1" ForeColor="Red"></asp:RequiredFieldValidator>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<div class="form-group">
<asp:TextBox ID="multichoice2" runat="server" class="form-control input-sm floatlabel" placeholder="Multiple Choice 2"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" CssClass="textalignment" ErrorMessage="Multiple choice is required" ControlToValidate="multichoice2" ForeColor="Red"></asp:RequiredFieldValidator>
</div>
</div>
</div>
<div class="row" id="row2">
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<div class="form-group">
<asp:TextBox ID="multichoice3" runat="server" class="form-control input-sm floatlabel" placeholder="Multiple Choice 3"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" CssClass="textalignment" ErrorMessage="Multiple choice is required" ControlToValidate="multichoice3" ForeColor="Red"></asp:RequiredFieldValidator>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<div class="form-group">
<asp:TextBox ID="multichoice4" runat="server" class="form-control input-sm floatlabel" placeholder="Multiple Choice 4"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" CssClass="textalignment" ErrorMessage="Multiple choice is required" ControlToValidate="multichoice4" ForeColor="Red"></asp:RequiredFieldValidator>
</div>
</div>
</div>
<div class="row" id="row3">
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<div class="form-group">
<asp:TextBox ID="TextBox1" runat="server" class="form-control input-sm floatlabel" placeholder="Multiple Choice 5"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" CssClass="textalignment" ErrorMessage="Multiple choice is required" ControlToValidate="multichoice4" ForeColor="Red"></asp:RequiredFieldValidator>
</div>
</div>
</div>
<asp:Button ID="Button1" runat="server" Text="Button" UseSubmitBehavior="false" CssClass="btn btn-default" OnClick="Button1_Click1" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</div>
UseSubmitBehavior = "false"は必要ありません。 web.configに珍しい設定がありますか? UnobtrusiveValidationModeを何かに設定しましたか? – kman
私はweb.configを変更しませんでした。私はデフォルトweb.configを持っています。 –
検証エラーのないボタンをクリックしてポストバックしないと、コンソールにJavaScriptエラーが表示されますか? – kman