使用oninvalid setCustomValidity连按按钮在服务器上运行的表单验证

时间:2018-09-12 12:04:38

标签: html asp.net validation

我有一个同时具有html控件和asp控件的服务器端表单,我使用oninvalid属性来调用setCustomValidity,如下所示:

<form class="uk-form-stacked" id="wizard_advanced_form" runat="server">
<div class="uk-grid">
<div class="uk-width-medium-1-2 parsley-row">
<label for="lstNationalIDType">نوع الوثيقة</label>
<select id="lstNationalIDType" required runat="server" oninvalid="this.setCustomValidity('تاكد من اختيار نوع الوثيقة')" oninput="setCustomValidity('')" class="md-input" tabindex="1">
<option value=""></option>
</select>
</div>
<div class="uk-width-medium-1-2 parsley-row">
<label for="txtNationalID">رقم الوثيقة<span class="req">*</span></label>
<asp:TextBox ID="txtNationalID" class="md-input" oninvalid="this.setCustomValidity('تاكد من ادخال رقم الوثيقة')" oninput="setCustomValidity('')" runat="server" tabindex="2" MaxLength="10"></asp:TextBox>
</div>
</div>
<div class="uk-grid">
<div class="uk-width-1-1">
<button type="submit" id="btnAdd" runat="server" class="md-btn md-btn-primary" onserverclick="btnAdd_ServerClick">حفظ</button>
</div>
</div>
</form>

当我单击“保存”按钮并且选择框或“文本框”为空时,将显示验证消息,但会触发按钮事件并使用空值保存数据。

那么,当出现验证消息时,如何防止按钮服务器端事件?

2 个答案:

答案 0 :(得分:0)

尝试使用Page.IsValid

 if (!Page.IsValid)  
             return;
    }
    else{
       //Do save action
    }

答案 1 :(得分:0)

我更改了以下内容:

<button type="submit" id="btnAdd" runat="server" class="md-btn md-btn-primary" onserverclick="btnAdd_ServerClick">حفظ</button>

到以下:

<asp:Button ID="btnAdd" runat="server" Text="Button" CssClass="md-btn md-btn-primary"  OnClick="btnAdd_ServerClick" />

相关问题