Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery对MVC3中动态生成的单选按钮进行不引人注目的验证?_Jquery_Asp.net Mvc_Jquery Validate - Fatal编程技术网

jQuery对MVC3中动态生成的单选按钮进行不引人注目的验证?

jQuery对MVC3中动态生成的单选按钮进行不引人注目的验证?,jquery,asp.net-mvc,jquery-validate,Jquery,Asp.net Mvc,Jquery Validate,我有一个动态表单应用程序,正在尝试对表单元素应用适当的不引人注目的验证,并且在让表单以我想要的方式显示验证错误方面遇到了麻烦 渲染单选按钮表单项的局部视图如下所示: @model FormItem <div class="form-row"> <div class="form-item">@Model.Text</div> <div class="form-item-responses"> @foreach(FormItemRespons

我有一个动态表单应用程序,正在尝试对表单元素应用适当的不引人注目的验证,并且在让表单以我想要的方式显示验证错误方面遇到了麻烦

渲染单选按钮表单项的局部视图如下所示:

@model FormItem

<div class="form-row">
<div class="form-item">@Model.Text</div>
<div class="form-item-responses">
    @foreach(FormItemResponse formItemResponse in Model.Responses.OrderBy(x => x.SortOrder))
    {
        if(Model.Required)
        {
            @Html.RadioButton(Model.Id.ToString(), formItemResponse.Id, formItemResponse.DefaultSelection, new { @class = "required", data_val = "true", data_val_required = "*"}) @formItemResponse.Text

        }
        else
        {
             @Html.RadioButton(Model.Id.ToString(), formItemResponse.Id, formItemResponse.DefaultSelection) @formItemResponse.Text
        }

        <text>&nbsp; &nbsp;</text>
    }
    <span class="field-validation-valid" data-valmsg-for="@Model.Id.ToString()" data-valmsg-replace="true"></span>
</div>

但这似乎覆盖了默认行为,只需在每个答案组的第一个单选按钮旁边放置一个黑色的
此字段是必填的。我想要默认的行为,然后就是这个额外的更改。

我解决这个问题的方法是从表单中获取验证程序作为变量,然后访问文档中的设置。准备好了吗

        var validatorData = $('#items-form').data('validator');
        validatorData.settings.highlight = function (element, errorClass) {
            $(element).parent().parent().css("color", "red");
        };

我不知道为什么我第一次尝试的方法不起作用。文档和许多在线示例中似乎都是这样。

您的浏览器的控制台中是否出现javascript问题?我看不到任何问题。我甚至将控制台日志中的错误计数放在那里,以确保它能够访问该功能,而且是这样的。但这就是所有发生的事情。是否已(在运行时)为类设置了输入标记“.input validation error”在验证后?@JuniorMayhé我不确定验证插件的默认行为,但我相信在验证期间会发生这种情况。我只是添加了适当的类“required”,包括适当的脚本,提交时,如果没有填写所需的内容,则会将输入验证错误类添加到该无线电组中。
 $("#items-form").validate({
      invalidHandler: function (form, validator) {
          var errors = validator.numberOfInvalids();
          console.log(errors);
          $("input.input-validation-error").each(function() {
              this.parent().css("color", "red");
          });
      }
  });
        var validatorData = $('#items-form').data('validator');
        validatorData.settings.highlight = function (element, errorClass) {
            $(element).parent().parent().css("color", "red");
        };