单选按钮验证不起作用 jquery

Posted

技术标签:

【中文标题】单选按钮验证不起作用 jquery【英文标题】:Radio button validation is not working jquery 【发布时间】:2020-04-12 22:47:43 【问题描述】:

您好,我正在开发一个 MVC 应用程序,并且有一个模型,我通过在属性上设置必需属性来完成验证。

 [Required(ErrorMessage = "Name is required.")]
 public string Name  get; set; 

 [Required(ErrorMessage = "Gender is required.")]
 public string Gender get; set; 

我有一个按钮点击,在 jquery 中点击这个按钮我已经完成了。

$("#frmInfo").validate();

问题是验证显示绑定到文本框的名称,但不显示绑定到单选按钮的性别。下面是在浏览器中呈现的 html

    <input data-val="true" data-val-required="Name is required." id="Name" name="Name" type="text" value="" aria-required="true" class="input-validation-error" aria-describedby="Name-error" aria-invalid="true">
    <span class="field-validation-error" data-valmsg-for="Name" data-valmsg-replace="true"></span>
    <span id="Name-error" class="">Name is required.</span>

    <input id="Gender0" name="Gender" type="radio" value="Male" title="Male">
    <label for="Male">Male</label>
    <input id="Gender1" name="Gender" type="radio" value="Female" title="Female">
    <label for="Female">Female</label>
    <span class="field-validation-valid" data-valmsg-for="Gender" data-valmsg-replace="true"></span>

我不确定这里缺少什么单选按钮验证不起作用。

【问题讨论】:

如果您正在使用 Unobtrusive Validation 插件,则不能致电 .validate()。它由 Unobtrusive 自动构建和调用,您的将被忽略。 【参考方案1】:

按照以下步骤操作,希望它能解决您的问题。

HTML

创建一个隐藏控件来保存单选按钮的值。此隐藏控件的默认值为空。

<input id="hdnGender" name="hdnGender" type="hidden" value=""/>

JQuery

将单选按钮选择的值存储到隐藏控件中。

<script type="text/javascript">
$("input[name='Gender']").on("click", function () 
        $("#hdnGender").val($(this).val());

MVC

通过任何后端脚本验证隐藏控件值。

 [Required(ErrorMessage = "Gender is required.")]
 public string Gender get; set; 

【讨论】:

以上是关于单选按钮验证不起作用 jquery的主要内容,如果未能解决你的问题,请参考以下文章

单选按钮在 jquery innerhtml 中不起作用

输入类型单选按钮检查 else 语句在 jquery 中不起作用

验证单个单选按钮在可用的 javascript 验证脚本中不起作用

jquery:重置后禁用/启用按钮不起作用

将 Jquery 升级到 3.4 后,Material js 单选按钮禁用不起作用?

Bootstrap 单选按钮组敲除绑定不起作用