我有以下ASP.Net WebForm Address
字段是必填字段。 Address
字段通過jQuery填充Location
字段的值。ASP.NET Web窗體 - 當通過jquery填充字段時客戶端驗證不工作?
當我點擊提交而沒有填寫任何字段時,客戶端驗證會觸發,我們會在Address
控件的下方顯示錯誤消息。
如果我現在在Location
字段中輸入一個值,那麼jQuery會觸發並且Address
字段會填充一個值,但以前的錯誤消息不會清除 - 僅在手動輸入值時纔會清除它?
<div>
<label>Location</label>
<asp:TextBox ID="Location" runat="server" CssClass="form-control" ClientIDMode="Static" placeholder="Enter location"></asp:TextBox>
</div>
<div>
<label >Address</label>
<asp:TextBox ID="Address" runat="server" CssClass="form-control" ClientIDMode="Static" placeholder="Enter the address"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ErrorMessage="Address is Required" Display="Dynamic" ControlToValidate="Address" CssClass="field-validation-error" EnableClientScript="True"></asp:RequiredFieldValidator>
</div>
<asp:Button ID="Submit" runat="server" Text="Save" OnClick="btnSubmit_Click" CssClass="btn btn-primary" />
<script>
$("#Location").on('change', function (e) {
var location = $("#Location").val();
$("#Address").val(location);
});
</script>
如何可以解決這個問題,這樣,如果被顯示的控制之下的客戶端錯誤,即它清除錯誤消息,如果驗證邏輯通過jQuery fullfilled如在上面的例子?
經過assigne地址刪除這樣的錯誤標籤應該爲你工作。 '$(「#Address」)。next('label')。remove();' –
@Shree爲什麼我會刪除標籤? asp.net webforms生成的標記是: Address is Required'。另外,如果我有十幾個以這種方式預先填充的字段,那麼這不是一個乾淨的解決方法。 – adam78