[英]asp-for tag adds required field validation on checkbox in asp.net core
我有asp.net核心應用程序,我試圖添加簡單的復選框,沒有任何驗證。 復選框綁定到模型上的布爾屬性。 下面是代碼
模型
public class MyModel
{
public bool IsEmployee { get; set; }
}
CSHTML
<form>
<div>
<label asp-for="IsEmployee">Is Employee</label>
<input type="checkbox" asp-for="IsEmployee"/>
</div>
<button id="btnSave" class="btn btn-primary" type="button">Save</button>
</form>
<script src="~/js/test.js"></script>
JavaScript的
$(function () {
var kendoValidator = $('form').kendoValidator().data("kendoValidator");
$('#btnSave').click(function () {
if (kendoValidator.validate()) {
alert('true');
}
else {
alert('false');
}
})
})
我在input
元素上使用asp-for
tag helper。 請注意, IsEmployee
屬性沒有[Required]屬性。 但是由於asp-for
tag helper,渲染的html在input
元素上具有data-val-required
和data-val
屬性。 它還添加了一個具有相同名稱的hiddden input
元素。 下面是渲染的html。 (另請注意,我認為只有在輸入類型為復選框時才會發生。對於文本框,它的工作正常)
<form novalidate="novalidate" data-role="validator">
<div>
<label for="IsEmployee">Is Employee</label>
<input name="IsEmployee" id="IsEmployee" type="checkbox" value="true" data-val-required="The IsEmployee field is required." data-val="true">
</div>
<button class="btn btn-primary" id="btnSave" type="button">Save</button>
<input name="IsEmployee" type="hidden" value="false">
</form>
我也使用kendovalidator,它在表單元素上添加了data-role="validator"
。
問題
這里有2個問題
1>一旦我點擊檢查框,就會出現錯誤消息,因為The IsEmployee field is required.
2>無論是否選中復選框,kendoValidator.validate()方法始終返回false。
在這里演示JSFiddle
更新2
我們不能將可空的bool綁定到checkbox。 我使用的是asp.net核心。 我不知道在您的建議asp.net核心相當於語法這里有效期為經典的asp.net
如果你不是默認生成的html,你有兩個選擇。
希望這有助於你。
將data-validate =“false”添加到復選框輸入。 kendoValidator將忽略該屬性設置為false的所有輸入。
<input type="checkbox" asp-for="IsEmployee" data-validate="false" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.