我的 .net 5 core mvc 視圖中有四個下拉串列。一個是從包含在運行時傳遞給視圖的模型中的串列中填充的,另外三個是通過 Json 呼叫填充的。我的表單上需要所有這四個 DDL,但 Jquery Validate 只捕獲其中兩個,我不知道為什么。
四個 DDL 的基本代碼如下。首先,按預期驗證失敗的兩個:
@* This DDL is populated from a list in the model *@
<select id="mGroup" required>
<option selected="selected" value="">Select Material Group</option>
@foreach (var item in Model.groups)
{
<option value="@item.group" style="background-color: @item.hex_color;">
@item.name
</option>
}
</select>
@* This DDL is populated from a Json call, triggered when a value is selected in the first DDL *@
<select id="mSubGroup" tabindex="7" required>
<option value="">Select Material Group</option>
</select>
當我嘗試提交我的表單而不在這些 DDL 中選擇有效選項時,驗證觸發器和它們被分配了類“輸入驗證錯誤”,這就是我想要的。
但是,下面的兩個 DDL 都由 Json 呼叫填充,沒有看到這種情況發生。
<select id="class" required>
<option value="" selected="selected">Select Class</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
<select id="limit" required>
<option value="" selected="selected">Select Limit</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
當我嘗試提交表單而不選擇這些 DDL 上的選項時,什么也沒有發生。它們的 HTML 保持不變。即使我嘗試在我提到的前兩個 DDL 中選擇有效選項,這些仍然沒有得到驗證。
包含這些 DDL(以及我所有其他輸入)的表單在代碼中設定,如下所示:
@using (Html.BeginForm(FormMethod.Post, new {id = "qForm"}))
...因為表單包含多個“提交”按鈕,每個按鈕都會觸發不同的表單操作。在這些按鈕的點擊事件的 javascript 中,我呼叫
$('#rfqForm').validate();
根據 Jquery Validate 檔案。
我的表單也受模型中的 MVC 服務器端驗證。這四個下拉串列中的每一個都將它們選擇的值輸入到連接到回發模型的“Html.HiddenFor”物件中,我知道這不包括在 DOM 驗證中。但是,當我將這些隱藏欄位替換為某些內容時,例如用 CSS 隱藏的文本框,驗證仍然不會觸發。這就是我嘗試走 Jquery 路線的原因。
我需要驗證這些下拉串列。我希望有人可以解釋這里出了什么問題。
uj5u.com熱心網友回復:
事實證明,將這些下拉串列中的選定值復制到用 CSS 隱藏的 TextBox 中,而不是隱藏欄位,然后從這些下拉串列中運行我的驗證是可行的方法。問題是我需要用“可見性:隱藏”而不是“顯示:無”來隱藏它們,這是我之前嘗試過的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/491524.html
標籤:jQuery 验证 asp.net-core-mvc .net-5
上一篇:驗證精度四舍五入到3dp
