gpt4 book ai didi

MVC3 中动态生成的单选按钮的 jQuery 不显眼验证?

转载 作者:行者123 更新时间:2023-12-01 04:58:17 27 4
gpt4 key购买 nike

我有一个动态表单应用程序,正在尝试对表单元素应用适当的不显眼的验证,但无法让表单按照我想要的方式显示验证错误。

我渲染单选按钮表单项的部分 View 如下所示:

@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>

对于那些不熟悉 MVC 的人来说,这是最终的标记:

<div class="form-row">
<div class="form-item">Form Item Text Here</div>
<div class="form-item-responses">
<input class="required" data-val="true" data-val-required="*" name="026d44a7-fa55-4fe8-8d2f-4f561c77c716" type="radio" value="dcfa4a9a-53e1-44d5-b6b3-a133673bfa2e" />Yes &nbsp; &nbsp;
<input class="required" data-val="true" data-val-required="*" name="026d44a7-fa55-4fe8-8d2f-4f561c77c716" type="radio" value="0042876b-2362-4f65-9c8a-dddf7f8206e8" />No &nbsp; &nbsp;
<input class="required" data-val="true" data-val-required="*" name="026d44a7-fa55-4fe8-8d2f-4f561c77c716" type="radio" value="a0918eab-93b6-4e45-a78d-301e28571037" />NA &nbsp; &nbsp;
<span class="field-validation-valid" data-valmsg-for="026d44a7-fa55-4fe8-8d2f-4f561c77c716" data-valmsg-replace="true"></span>
</div>

在工作中,任何一组单选按钮都得到正确验证,并且 * 出现在该项目旁边。但是,我想做的是将 .form-item-responses 中所有内容的文本颜色更改为红色。不仅仅是验证错误消息。

我该怎么做?我尝试像这样使用 invalidHandler :

 $("#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");
});
}
});

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

最佳答案

我解决这个问题的方法是从表单中获取验证器作为变量,然后访问 document.ready 中的设置,如下所示:

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

我不确定为什么我尝试的第一种方法不起作用。这似乎是文档和许多在线示例中的方式。

关于MVC3 中动态生成的单选按钮的 jQuery 不显眼验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12753152/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com