首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >asp-for标签在asp.net核心的checkbox上添加了必需的字段验证

asp-for标签在asp.net核心的checkbox上添加了必需的字段验证
EN

Stack Overflow用户
提问于 2016-11-01 01:02:07
回答 2查看 3.5K关注 0票数 4

我有asp.net核心应用程序和即时通讯试图添加简单的复选框,没有任何验证。Checkbox被绑定到模型上的布尔属性。下面是代码

模型

代码语言:javascript
复制
public class MyModel
{  
    public bool IsEmployee { get; set; }
}

cshtml

代码语言:javascript
复制
 <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

代码语言:javascript
复制
$(function () {
   var kendoValidator = $('form').kendoValidator().data("kendoValidator");
   $('#btnSave').click(function () {
    if (kendoValidator.validate()) {
        alert('true');
    }
    else {
        alert('false');
    }
   })
})

我在input元素上使用asp-for标签助手。请注意,IsEmployee属性没有必需的属性。但是由于有了asp-for标签帮助器,所呈现的html在input元素上具有data-val-requireddata-val属性。它还添加了另一个同名的hiddden input元素。下面是呈现的html。(还要注意,我认为只有在输入类型为checkbox时才会发生这种情况。对于文本框,它工作正常)

代码语言:javascript
复制
 <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"

问题

这里有两个问题

我一单击check 1>框,错误消息就会显示为The IsEmployee field is required.

无论是否选中复选框,2>kendoValidator.validate()方法始终返回false。

在这里演示JSFiddle

更新2

我们不能将可为空的bool绑定到checkbox。我使用的是asp.net内核。我不确定建议here在asp.net核心中的等效语法是什么,它对经典的asp.net有效

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40346924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档